diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..5aadb88
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,17 @@
+# walletconnect projectId:
+# you can get it from https://cloud.walletconnect.com/
+# by creating a new project with email & password
+# you don't need a wallet for this example
+# WALLET_CONNECT_PROJECT_ID = "walletconnect_project_id"
+
+# ------------------------------------------------------------------------------
+# Since the ".env" file is gitignored, you can use the ".env.example" file to
+# build a new ".env" file when you clone the repo. Keep this file up-to-date
+# when you add new variables to `.env`.
+
+# This file will be committed to version control, so make sure not to have any
+# secrets in it. If you are cloning this repo, create a copy of this file named
+# ".env" and populate it with your secrets.
+
+# When adding additional environment variables, the schema in "/src/env.mjs"
+# should be updated accordingly.
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..79cb511
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,36 @@
+/** @type {import("eslint").Linter.Config} */
+const config = {
+ parser: "@typescript-eslint/parser",
+ parserOptions: {
+ project: true,
+ },
+ plugins: ["@typescript-eslint"],
+ extends: [
+ "next/core-web-vitals",
+ "plugin:@typescript-eslint/recommended-type-checked",
+ "plugin:@typescript-eslint/stylistic-type-checked",
+ ],
+ rules: {
+ // These opinionated rules are enabled in stylistic-type-checked above.
+ // Feel free to reconfigure them to your own preference.
+ "@typescript-eslint/array-type": "off",
+ "@typescript-eslint/consistent-type-definitions": "off",
+
+ "@typescript-eslint/consistent-type-imports": [
+ "warn",
+ {
+ prefer: "type-imports",
+ fixStyle: "inline-type-imports",
+ },
+ ],
+ "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
+ "@typescript-eslint/no-misused-promises": [
+ 2,
+ {
+ checksVoidReturn: { attributes: false },
+ },
+ ],
+ },
+};
+
+module.exports = config;
diff --git a/.gitignore b/.gitignore
index c6bba59..713db5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,45 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# database
+/prisma/db.sqlite
+/prisma/db.sqlite-journal
+
+# next.js
+/.next/
+/out/
+next-env.d.ts
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# local env files
+# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables
+.env
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
# Logs
logs
*.log
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000..a58d2d2
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+18.18.2
\ No newline at end of file
diff --git a/README.md b/README.md
index 5d90f7b..b979f64 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,34 @@
# DC-EBC-Hackathon
DC-EBC-Hackathon
+
+# ALL DEX
+ALLdex is a Product of the AllTrend Team form the European Blockchain Hackathon.
+
+[Link to live demo](https://alldex.vercel.app/)
+where you can open a long and short perpetual future position.
+
+More details about functionality and Future Roadmap you can find in our WhitePaper.
+
+
+## Whitepaper
+[link to the withepaper v1](https://github.com/AllTrends/whitepaper)
+
+## Run the frontend app
+
+
+
+install dependecies
+
+```bash
+pnpm i
+```
+
+then run the app
+
+```bash
+pnpm dev
+```
+
+## License
+
+[MIT](https://choosealicense.com/licenses/mit/)
diff --git a/components.json b/components.json
new file mode 100644
index 0000000..6305a78
--- /dev/null
+++ b/components.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "default",
+ "rsc": false,
+ "tsx": true,
+ "tailwind": {
+ "config": "tailwind.config.js",
+ "css": "src/styles/globals.css",
+ "baseColor": "stone",
+ "cssVariables": true
+ },
+ "aliases": {
+ "components": "src/components/",
+ "utils": "~/components/lib/utils"
+ }
+}
\ No newline at end of file
diff --git a/next.config.mjs b/next.config.mjs
new file mode 100644
index 0000000..7df4049
--- /dev/null
+++ b/next.config.mjs
@@ -0,0 +1,29 @@
+/**
+ * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful
+ * for Docker builds.
+ */
+await import("./src/env.mjs");
+
+/** @type {import("next").NextConfig} */
+const config = {
+ reactStrictMode: true,
+
+ webpack: (config) => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
+ config.resolve.fallback = { fs: false, net: false, tls: false };
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
+ return config;
+ },
+
+ /**
+ * If you are using `appDir` then you must comment the below `i18n` config out.
+ *
+ * @see https://github.com/vercel/next.js/issues/41980
+ */
+ i18n: {
+ locales: ["en"],
+ defaultLocale: "en",
+ },
+};
+
+export default config;
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..18287cf
--- /dev/null
+++ b/package.json
@@ -0,0 +1,68 @@
+{
+ "name": "perpetual-dex",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "build": "next build",
+ "dev": "next dev",
+ "lint": "next lint",
+ "start": "next start"
+ },
+ "dependencies": {
+ "@fontsource-variable/instrument-sans": "^5.0.3",
+ "@formkit/auto-animate": "^0.8.0",
+ "@radix-ui/react-alert-dialog": "^1.0.5",
+ "@radix-ui/react-dialog": "^1.0.5",
+ "@radix-ui/react-label": "^2.0.2",
+ "@radix-ui/react-separator": "^1.0.3",
+ "@radix-ui/react-slot": "^1.0.2",
+ "@radix-ui/react-tabs": "^1.0.4",
+ "@rainbow-me/rainbowkit": "^1.1.2",
+ "@t3-oss/env-nextjs": "^0.7.0",
+ "@tanstack/react-query": "^4.32.6",
+ "@trpc/client": "^10.37.1",
+ "@trpc/next": "^10.37.1",
+ "@trpc/react-query": "^10.37.1",
+ "@trpc/server": "^10.37.1",
+ "apexcharts": "^3.44.0",
+ "class-variance-authority": "^0.7.0",
+ "clsx": "^2.0.0",
+ "cryptocurrency-icons": "^0.18.1",
+ "lucide-react": "^0.288.0",
+ "next": "^13.5.4",
+ "react": "18.2.0",
+ "react-apexcharts": "^1.4.1",
+ "react-dom": "18.2.0",
+ "react-hot-toast": "^2.4.1",
+ "react-text-mask": "^5.5.0",
+ "superjson": "^1.13.1",
+ "tailwind-merge": "^1.14.0",
+ "tailwindcss-animate": "^1.0.7",
+ "viem": "^1.16.6",
+ "wagmi": "^1.4.5",
+ "zod": "^3.22.4",
+ "zustand": "^4.4.4"
+ },
+ "devDependencies": {
+ "@iconify/react": "^4.1.1",
+ "@types/eslint": "^8.44.2",
+ "@types/node": "^18.16.0",
+ "@types/react": "^18.2.20",
+ "@types/react-dom": "^18.2.7",
+ "@types/react-text-mask": "^5.4.13",
+ "@typescript-eslint/eslint-plugin": "^6.3.0",
+ "@typescript-eslint/parser": "^6.3.0",
+ "autoprefixer": "^10.4.14",
+ "eslint": "^8.47.0",
+ "eslint-config-next": "^13.5.4",
+ "postcss": "^8.4.27",
+ "prettier": "^3.0.0",
+ "prettier-plugin-tailwindcss": "^0.5.1",
+ "tailwindcss": "^3.3.3",
+ "typescript": "^5.1.6"
+ },
+ "ct3aMetadata": {
+ "initVersion": "7.22.0"
+ },
+ "packageManager": "pnpm@8.9.2"
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..b8b4fde
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,5577 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+dependencies:
+ '@fontsource-variable/instrument-sans':
+ specifier: ^5.0.3
+ version: 5.0.3
+ '@formkit/auto-animate':
+ specifier: ^0.8.0
+ version: 0.8.0
+ '@radix-ui/react-alert-dialog':
+ specifier: ^1.0.5
+ version: 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-dialog':
+ specifier: ^1.0.5
+ version: 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-label':
+ specifier: ^2.0.2
+ version: 2.0.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-separator':
+ specifier: ^1.0.3
+ version: 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-slot':
+ specifier: ^1.0.2
+ version: 1.0.2(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-tabs':
+ specifier: ^1.0.4
+ version: 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@rainbow-me/rainbowkit':
+ specifier: ^1.1.2
+ version: 1.1.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)(viem@1.16.6)(wagmi@1.4.5)
+ '@t3-oss/env-nextjs':
+ specifier: ^0.7.0
+ version: 0.7.1(typescript@5.2.2)(zod@3.22.4)
+ '@tanstack/react-query':
+ specifier: ^4.32.6
+ version: 4.36.1(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/client':
+ specifier: ^10.37.1
+ version: 10.41.0(@trpc/server@10.41.0)
+ '@trpc/next':
+ specifier: ^10.37.1
+ version: 10.41.0(@tanstack/react-query@4.36.1)(@trpc/client@10.41.0)(@trpc/react-query@10.41.0)(@trpc/server@10.41.0)(next@13.5.6)(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/react-query':
+ specifier: ^10.37.1
+ version: 10.41.0(@tanstack/react-query@4.36.1)(@trpc/client@10.41.0)(@trpc/server@10.41.0)(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/server':
+ specifier: ^10.37.1
+ version: 10.41.0
+ apexcharts:
+ specifier: ^3.44.0
+ version: 3.44.0
+ class-variance-authority:
+ specifier: ^0.7.0
+ version: 0.7.0
+ clsx:
+ specifier: ^2.0.0
+ version: 2.0.0
+ cryptocurrency-icons:
+ specifier: ^0.18.1
+ version: 0.18.1
+ lucide-react:
+ specifier: ^0.288.0
+ version: 0.288.0(react@18.2.0)
+ next:
+ specifier: ^13.5.4
+ version: 13.5.6(react-dom@18.2.0)(react@18.2.0)
+ react:
+ specifier: 18.2.0
+ version: 18.2.0
+ react-apexcharts:
+ specifier: ^1.4.1
+ version: 1.4.1(apexcharts@3.44.0)(react@18.2.0)
+ react-dom:
+ specifier: 18.2.0
+ version: 18.2.0(react@18.2.0)
+ react-hot-toast:
+ specifier: ^2.4.1
+ version: 2.4.1(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0)
+ react-text-mask:
+ specifier: ^5.5.0
+ version: 5.5.0(react@18.2.0)
+ superjson:
+ specifier: ^1.13.1
+ version: 1.13.3
+ tailwind-merge:
+ specifier: ^1.14.0
+ version: 1.14.0
+ tailwindcss-animate:
+ specifier: ^1.0.7
+ version: 1.0.7(tailwindcss@3.3.3)
+ viem:
+ specifier: ^1.16.6
+ version: 1.16.6(typescript@5.2.2)(zod@3.22.4)
+ wagmi:
+ specifier: ^1.4.5
+ version: 1.4.5(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@1.16.6)(zod@3.22.4)
+ zod:
+ specifier: ^3.22.4
+ version: 3.22.4
+ zustand:
+ specifier: ^4.4.4
+ version: 4.4.4(@types/react@18.2.31)(react@18.2.0)
+
+devDependencies:
+ '@iconify/react':
+ specifier: ^4.1.1
+ version: 4.1.1(react@18.2.0)
+ '@types/eslint':
+ specifier: ^8.44.2
+ version: 8.44.6
+ '@types/node':
+ specifier: ^18.16.0
+ version: 18.18.6
+ '@types/react':
+ specifier: ^18.2.20
+ version: 18.2.31
+ '@types/react-dom':
+ specifier: ^18.2.7
+ version: 18.2.14
+ '@types/react-text-mask':
+ specifier: ^5.4.13
+ version: 5.4.13
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^6.3.0
+ version: 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.52.0)(typescript@5.2.2)
+ '@typescript-eslint/parser':
+ specifier: ^6.3.0
+ version: 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ autoprefixer:
+ specifier: ^10.4.14
+ version: 10.4.16(postcss@8.4.31)
+ eslint:
+ specifier: ^8.47.0
+ version: 8.52.0
+ eslint-config-next:
+ specifier: ^13.5.4
+ version: 13.5.6(eslint@8.52.0)(typescript@5.2.2)
+ postcss:
+ specifier: ^8.4.27
+ version: 8.4.31
+ prettier:
+ specifier: ^3.0.0
+ version: 3.0.3
+ prettier-plugin-tailwindcss:
+ specifier: ^0.5.1
+ version: 0.5.6(prettier@3.0.3)
+ tailwindcss:
+ specifier: ^3.3.3
+ version: 3.3.3
+ typescript:
+ specifier: ^5.1.6
+ version: 5.2.2
+
+packages:
+
+ /@aashutoshrathi/word-wrap@1.2.6:
+ resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /@adraffy/ens-normalize@1.9.4:
+ resolution: {integrity: sha512-UK0bHA7hh9cR39V+4gl2/NnBBjoXIxkuWAPCaY4X7fbH4L/azIi7ilWOCjMUYfpJgraLUAqkRi2BqrjME8Rynw==}
+ dev: false
+
+ /@alloc/quick-lru@5.2.0:
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+
+ /@babel/runtime@7.23.2:
+ resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.14.0
+
+ /@coinbase/wallet-sdk@3.7.2:
+ resolution: {integrity: sha512-lIGvXMsgpsQWci/XOMQIJ2nIZ8JUy/L+bvC0wkRaYarr0YylwpXrJ2gRM3hCXPS477pkyO7N/kSiAoRgEXUdJQ==}
+ engines: {node: '>= 10.0.0'}
+ dependencies:
+ '@metamask/safe-event-emitter': 2.0.0
+ '@solana/web3.js': 1.87.2
+ bind-decorator: 1.0.11
+ bn.js: 5.2.1
+ buffer: 6.0.3
+ clsx: 1.2.1
+ eth-block-tracker: 6.1.0
+ eth-json-rpc-filters: 5.1.0
+ eth-rpc-errors: 4.0.2
+ json-rpc-engine: 6.1.0
+ keccak: 3.0.4
+ preact: 10.18.1
+ qs: 6.11.2
+ rxjs: 6.6.7
+ sha.js: 2.4.11
+ stream-browserify: 3.0.0
+ util: 0.12.5
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /@emotion/hash@0.8.0:
+ resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
+ dev: false
+
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0):
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ dependencies:
+ eslint: 8.52.0
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /@eslint-community/regexpp@4.9.1:
+ resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ dev: true
+
+ /@eslint/eslintrc@2.1.2:
+ resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.4
+ espree: 9.6.1
+ globals: 13.23.0
+ ignore: 5.2.4
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@eslint/js@8.52.0:
+ resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@fontsource-variable/instrument-sans@5.0.3:
+ resolution: {integrity: sha512-HlObrvApp8qftNZOS3My3aVHrj0hOMLETJ11GKEyPUB1XQB5+Lkts2SdfYQjgOZOQqvhXtwpvWPrn+uk+lCpgw==}
+ dev: false
+
+ /@formkit/auto-animate@0.8.0:
+ resolution: {integrity: sha512-G8f7489ka0mWyi+1IEZT+xgIwcpWtRMmE2x+IrVoQ+KM1cP6VDj/TbujZjwxdb0P8w8b16/qBfViRmydbYHwMw==}
+ dev: false
+
+ /@humanwhocodes/config-array@0.11.13:
+ resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
+ engines: {node: '>=10.10.0'}
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.1
+ debug: 4.3.4
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@humanwhocodes/module-importer@1.0.1:
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+ dev: true
+
+ /@humanwhocodes/object-schema@2.0.1:
+ resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
+ dev: true
+
+ /@iconify/react@4.1.1(react@18.2.0):
+ resolution: {integrity: sha512-jed14EjvKjee8mc0eoscGxlg7mSQRkwQG3iX3cPBCO7UlOjz0DtlvTqxqEcHUJGh+z1VJ31Yhu5B9PxfO0zbdg==}
+ peerDependencies:
+ react: '>=16'
+ dependencies:
+ '@iconify/types': 2.0.0
+ react: 18.2.0
+ dev: true
+
+ /@iconify/types@2.0.0:
+ resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
+ dev: true
+
+ /@jridgewell/gen-mapping@0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.20
+
+ /@jridgewell/resolve-uri@3.1.1:
+ resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/set-array@1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+
+ /@jridgewell/trace-mapping@0.3.20:
+ resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ /@ledgerhq/connect-kit-loader@1.1.2:
+ resolution: {integrity: sha512-mscwGroSJQrCTjtNGBu+18FQbZYA4+q6Tyx6K7CXHl6AwgZKbWfZYdgP2F+fyZcRUdGRsMX8QtvU61VcGGtO1A==}
+ dev: false
+
+ /@lit-labs/ssr-dom-shim@1.1.2:
+ resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==}
+ dev: false
+
+ /@lit/reactive-element@1.6.3:
+ resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==}
+ dependencies:
+ '@lit-labs/ssr-dom-shim': 1.1.2
+ dev: false
+
+ /@metamask/safe-event-emitter@2.0.0:
+ resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==}
+ dev: false
+
+ /@metamask/utils@3.6.0:
+ resolution: {integrity: sha512-9cIRrfkWvHblSiNDVXsjivqa9Ak0RYo/1H6tqTqTbAx+oBK2Sva0lWDHxGchOqA7bySGUJKAWSNJvH6gdHZ0gQ==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@types/debug': 4.1.10
+ debug: 4.3.4
+ semver: 7.5.4
+ superstruct: 1.0.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@motionone/animation@10.16.3:
+ resolution: {integrity: sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g==}
+ dependencies:
+ '@motionone/easing': 10.16.3
+ '@motionone/types': 10.16.3
+ '@motionone/utils': 10.16.3
+ tslib: 2.6.2
+ dev: false
+
+ /@motionone/dom@10.16.4:
+ resolution: {integrity: sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA==}
+ dependencies:
+ '@motionone/animation': 10.16.3
+ '@motionone/generators': 10.16.4
+ '@motionone/types': 10.16.3
+ '@motionone/utils': 10.16.3
+ hey-listen: 1.0.8
+ tslib: 2.6.2
+ dev: false
+
+ /@motionone/easing@10.16.3:
+ resolution: {integrity: sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w==}
+ dependencies:
+ '@motionone/utils': 10.16.3
+ tslib: 2.6.2
+ dev: false
+
+ /@motionone/generators@10.16.4:
+ resolution: {integrity: sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg==}
+ dependencies:
+ '@motionone/types': 10.16.3
+ '@motionone/utils': 10.16.3
+ tslib: 2.6.2
+ dev: false
+
+ /@motionone/svelte@10.16.4:
+ resolution: {integrity: sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==}
+ dependencies:
+ '@motionone/dom': 10.16.4
+ tslib: 2.6.2
+ dev: false
+
+ /@motionone/types@10.16.3:
+ resolution: {integrity: sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg==}
+ dev: false
+
+ /@motionone/utils@10.16.3:
+ resolution: {integrity: sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA==}
+ dependencies:
+ '@motionone/types': 10.16.3
+ hey-listen: 1.0.8
+ tslib: 2.6.2
+ dev: false
+
+ /@motionone/vue@10.16.4:
+ resolution: {integrity: sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==}
+ dependencies:
+ '@motionone/dom': 10.16.4
+ tslib: 2.6.2
+ dev: false
+
+ /@next/env@13.5.6:
+ resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==}
+ dev: false
+
+ /@next/eslint-plugin-next@13.5.6:
+ resolution: {integrity: sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==}
+ dependencies:
+ glob: 7.1.7
+ dev: true
+
+ /@next/swc-darwin-arm64@13.5.6:
+ resolution: {integrity: sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-darwin-x64@13.5.6:
+ resolution: {integrity: sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-linux-arm64-gnu@13.5.6:
+ resolution: {integrity: sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-linux-arm64-musl@13.5.6:
+ resolution: {integrity: sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-linux-x64-gnu@13.5.6:
+ resolution: {integrity: sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-linux-x64-musl@13.5.6:
+ resolution: {integrity: sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-win32-arm64-msvc@13.5.6:
+ resolution: {integrity: sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-win32-ia32-msvc@13.5.6:
+ resolution: {integrity: sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@next/swc-win32-x64-msvc@13.5.6:
+ resolution: {integrity: sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@noble/curves@1.2.0:
+ resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==}
+ dependencies:
+ '@noble/hashes': 1.3.2
+ dev: false
+
+ /@noble/hashes@1.3.2:
+ resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==}
+ engines: {node: '>= 16'}
+ dev: false
+
+ /@nodelib/fs.scandir@2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.15.0
+
+ /@radix-ui/primitive@1.0.1:
+ resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==}
+ dependencies:
+ '@babel/runtime': 7.23.2
+ dev: false
+
+ /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-context@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ aria-hidden: 1.2.3
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-remove-scroll: 2.5.5(@types/react@18.2.31)(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-direction@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-id@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-direction': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-slot@1.0.2(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-direction': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ '@types/react-dom': 18.2.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.31)(react@18.2.0)
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@types/react': 18.2.31
+ react: 18.2.0
+ dev: false
+
+ /@rainbow-me/rainbowkit@1.1.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)(viem@1.16.6)(wagmi@1.4.5):
+ resolution: {integrity: sha512-yWxKDfHL4xDZJW34APGkmO2SkxjHwrEeAfvx6+137hWLttQwHcalG9nj4II8roYV2/2XJPmQsbEs7TM0rC0fOg==}
+ engines: {node: '>=12.4'}
+ peerDependencies:
+ react: '>=17'
+ react-dom: '>=17'
+ viem: ~0.3.19 || ^1.0.0
+ wagmi: ~1.0.1 || ~1.1.0 || ~1.2.0 || ~1.3.0 || ~1.4.0
+ dependencies:
+ '@vanilla-extract/css': 1.9.1
+ '@vanilla-extract/dynamic': 2.0.2
+ '@vanilla-extract/sprinkles': 1.5.0(@vanilla-extract/css@1.9.1)
+ clsx: 1.1.1
+ i18n-js: 4.3.2
+ qrcode: 1.5.0
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-remove-scroll: 2.5.4(@types/react@18.2.31)(react@18.2.0)
+ viem: 1.16.6(typescript@5.2.2)(zod@3.22.4)
+ wagmi: 1.4.5(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@1.16.6)(zod@3.22.4)
+ transitivePeerDependencies:
+ - '@types/react'
+ dev: false
+
+ /@rushstack/eslint-patch@1.5.1:
+ resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==}
+ dev: true
+
+ /@safe-global/safe-apps-provider@0.17.1(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ==}
+ dependencies:
+ '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.2.2)(zod@3.22.4)
+ events: 3.3.0
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /@safe-global/safe-apps-sdk@8.0.0(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw==}
+ dependencies:
+ '@safe-global/safe-gateway-typescript-sdk': 3.12.0
+ viem: 1.16.6(typescript@5.2.2)(zod@3.22.4)
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /@safe-global/safe-apps-sdk@8.1.0(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==}
+ dependencies:
+ '@safe-global/safe-gateway-typescript-sdk': 3.12.0
+ viem: 1.16.6(typescript@5.2.2)(zod@3.22.4)
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /@safe-global/safe-gateway-typescript-sdk@3.12.0:
+ resolution: {integrity: sha512-hExCo62lScVC9/ztVqYEYL2pFxcqLTvB8fj0WtdP5FWrvbtEgD0pbVolchzD5bf85pbzvEwdAxSVS7EdCZxTNw==}
+ engines: {node: '>=16'}
+ dev: false
+
+ /@scure/base@1.1.3:
+ resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==}
+ dev: false
+
+ /@scure/bip32@1.3.2:
+ resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==}
+ dependencies:
+ '@noble/curves': 1.2.0
+ '@noble/hashes': 1.3.2
+ '@scure/base': 1.1.3
+ dev: false
+
+ /@scure/bip39@1.2.1:
+ resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==}
+ dependencies:
+ '@noble/hashes': 1.3.2
+ '@scure/base': 1.1.3
+ dev: false
+
+ /@solana/buffer-layout@4.0.1:
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
+ dependencies:
+ buffer: 6.0.3
+ dev: false
+
+ /@solana/web3.js@1.87.2:
+ resolution: {integrity: sha512-TZNhS+tvJbYjm0LAvIkUy/3Aqgt2l6/3X6XsVUpvj5MGOl2Q6Ch8hYSxcUUtMbAFNN3sUXmV8NhhMLNJEvI6TA==}
+ dependencies:
+ '@babel/runtime': 7.23.2
+ '@noble/curves': 1.2.0
+ '@noble/hashes': 1.3.2
+ '@solana/buffer-layout': 4.0.1
+ agentkeepalive: 4.5.0
+ bigint-buffer: 1.1.5
+ bn.js: 5.2.1
+ borsh: 0.7.0
+ bs58: 4.0.1
+ buffer: 6.0.3
+ fast-stable-stringify: 1.0.0
+ jayson: 4.1.0
+ node-fetch: 2.7.0
+ rpc-websockets: 7.6.1
+ superstruct: 0.14.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@stablelib/aead@1.0.1:
+ resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==}
+ dev: false
+
+ /@stablelib/binary@1.0.1:
+ resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==}
+ dependencies:
+ '@stablelib/int': 1.0.1
+ dev: false
+
+ /@stablelib/bytes@1.0.1:
+ resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==}
+ dev: false
+
+ /@stablelib/chacha20poly1305@1.0.1:
+ resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==}
+ dependencies:
+ '@stablelib/aead': 1.0.1
+ '@stablelib/binary': 1.0.1
+ '@stablelib/chacha': 1.0.1
+ '@stablelib/constant-time': 1.0.1
+ '@stablelib/poly1305': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/chacha@1.0.1:
+ resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==}
+ dependencies:
+ '@stablelib/binary': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/constant-time@1.0.1:
+ resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==}
+ dev: false
+
+ /@stablelib/ed25519@1.0.3:
+ resolution: {integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==}
+ dependencies:
+ '@stablelib/random': 1.0.2
+ '@stablelib/sha512': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/hash@1.0.1:
+ resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==}
+ dev: false
+
+ /@stablelib/hkdf@1.0.1:
+ resolution: {integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==}
+ dependencies:
+ '@stablelib/hash': 1.0.1
+ '@stablelib/hmac': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/hmac@1.0.1:
+ resolution: {integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==}
+ dependencies:
+ '@stablelib/constant-time': 1.0.1
+ '@stablelib/hash': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/int@1.0.1:
+ resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==}
+ dev: false
+
+ /@stablelib/keyagreement@1.0.1:
+ resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==}
+ dependencies:
+ '@stablelib/bytes': 1.0.1
+ dev: false
+
+ /@stablelib/poly1305@1.0.1:
+ resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==}
+ dependencies:
+ '@stablelib/constant-time': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/random@1.0.2:
+ resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==}
+ dependencies:
+ '@stablelib/binary': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/sha256@1.0.1:
+ resolution: {integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==}
+ dependencies:
+ '@stablelib/binary': 1.0.1
+ '@stablelib/hash': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/sha512@1.0.1:
+ resolution: {integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==}
+ dependencies:
+ '@stablelib/binary': 1.0.1
+ '@stablelib/hash': 1.0.1
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@stablelib/wipe@1.0.1:
+ resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==}
+ dev: false
+
+ /@stablelib/x25519@1.0.3:
+ resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==}
+ dependencies:
+ '@stablelib/keyagreement': 1.0.1
+ '@stablelib/random': 1.0.2
+ '@stablelib/wipe': 1.0.1
+ dev: false
+
+ /@swc/helpers@0.5.2:
+ resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
+ /@t3-oss/env-core@0.7.1(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-3+SQt39OlmSaRLqYVFv8uRm1BpFepM5TIiMytRqO9cjH+wB77o6BIJdeyM5h5U4qLBMEzOJWCY4MBaU/rLwbYw==}
+ peerDependencies:
+ typescript: '>=4.7.2'
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ typescript: 5.2.2
+ zod: 3.22.4
+ dev: false
+
+ /@t3-oss/env-nextjs@0.7.1(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-tQDbNLGCOvKGi+JoGuJ/CJInJI7/kLWJqtgGppAKS7ZFLdVOqZYR/uRjxlXOWPnxmUKF8VswOAsq7fXUpNZDhA==}
+ peerDependencies:
+ typescript: '>=4.7.2'
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@t3-oss/env-core': 0.7.1(typescript@5.2.2)(zod@3.22.4)
+ typescript: 5.2.2
+ zod: 3.22.4
+ dev: false
+
+ /@tanstack/query-core@4.36.1:
+ resolution: {integrity: sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==}
+ dev: false
+
+ /@tanstack/query-persist-client-core@4.36.1:
+ resolution: {integrity: sha512-eocgCeI7D7TRv1IUUBMfVwOI0wdSmMkBIbkKhqEdTrnUHUQEeOaYac8oeZk2cumAWJdycu6P/wB+WqGynTnzXg==}
+ dependencies:
+ '@tanstack/query-core': 4.36.1
+ dev: false
+
+ /@tanstack/query-sync-storage-persister@4.36.1:
+ resolution: {integrity: sha512-yMEt5hWe2+1eclf1agMtXHnPIkxEida0lYWkfdhR8U6KXk/lO4Vca6piJmhKI85t0NHlx3l/z6zX+t/Fn5O9NA==}
+ dependencies:
+ '@tanstack/query-persist-client-core': 4.36.1
+ dev: false
+
+ /@tanstack/react-query-persist-client@4.36.1(@tanstack/react-query@4.36.1):
+ resolution: {integrity: sha512-32I5b9aAu4NCiXZ7Te/KEQLfHbYeTNriVPrKYcvEThnZ9tlW01vLcSoxpUIsMYRsembvJUUAkzYBAiZHLOd6pQ==}
+ peerDependencies:
+ '@tanstack/react-query': ^4.36.1
+ dependencies:
+ '@tanstack/query-persist-client-core': 4.36.1
+ '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0)
+ dev: false
+
+ /@tanstack/react-query@4.36.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-native: '*'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+ dependencies:
+ '@tanstack/query-core': 4.36.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ dev: false
+
+ /@trpc/client@10.41.0(@trpc/server@10.41.0):
+ resolution: {integrity: sha512-W4lYULb7//2yXkULCKim49slXsBwiBq48rfge1yOWXdq0Ed8VxzXvZt8+uWOkxmHbQAw4lq8G5fCNYFB+Za6vQ==}
+ peerDependencies:
+ '@trpc/server': 10.41.0
+ dependencies:
+ '@trpc/server': 10.41.0
+ dev: false
+
+ /@trpc/next@10.41.0(@tanstack/react-query@4.36.1)(@trpc/client@10.41.0)(@trpc/react-query@10.41.0)(@trpc/server@10.41.0)(next@13.5.6)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-QwvZrvDjRFEzErmLZ4hMdYfX13nsH0SpijjuTNPIlSIyFISCIfDCqmBvWC07O6fCG/swh+XM19FhJN6RMqTlKQ==}
+ peerDependencies:
+ '@tanstack/react-query': ^4.18.0
+ '@trpc/client': 10.41.0
+ '@trpc/react-query': 10.41.0
+ '@trpc/server': 10.41.0
+ next: '*'
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+ dependencies:
+ '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/client': 10.41.0(@trpc/server@10.41.0)
+ '@trpc/react-query': 10.41.0(@tanstack/react-query@4.36.1)(@trpc/client@10.41.0)(@trpc/server@10.41.0)(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/server': 10.41.0
+ next: 13.5.6(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-ssr-prepass: 1.5.0(react@18.2.0)
+ dev: false
+
+ /@trpc/react-query@10.41.0(@tanstack/react-query@4.36.1)(@trpc/client@10.41.0)(@trpc/server@10.41.0)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-pCLZfIgcnneq1AocPLvstALawZYWS/sbhujd4mwUwA3UXFBWC/D31ysPlbz7R1dhjxhhPaIM+C6pz8vmr2ctpw==}
+ peerDependencies:
+ '@tanstack/react-query': ^4.18.0
+ '@trpc/client': 10.41.0
+ '@trpc/server': 10.41.0
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+ dependencies:
+ '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/client': 10.41.0(@trpc/server@10.41.0)
+ '@trpc/server': 10.41.0
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@trpc/server@10.41.0:
+ resolution: {integrity: sha512-uC0xLelzOuoFwxbBQ3GzX4DaWNucO9lW2vlGPdKu8ycXu2ObSa739oQ/lNF6qWDNUKXS0tQvGnDCAxEd178EzQ==}
+ dev: false
+
+ /@types/connect@3.4.37:
+ resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==}
+ dependencies:
+ '@types/node': 18.18.6
+ dev: false
+
+ /@types/debug@4.1.10:
+ resolution: {integrity: sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==}
+ dependencies:
+ '@types/ms': 0.7.33
+ dev: false
+
+ /@types/eslint@8.44.6:
+ resolution: {integrity: sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==}
+ dependencies:
+ '@types/estree': 1.0.3
+ '@types/json-schema': 7.0.14
+ dev: true
+
+ /@types/estree@1.0.3:
+ resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==}
+ dev: true
+
+ /@types/json-schema@7.0.14:
+ resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==}
+ dev: true
+
+ /@types/json5@0.0.29:
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ dev: true
+
+ /@types/ms@0.7.33:
+ resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==}
+ dev: false
+
+ /@types/node@12.20.55:
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+ dev: false
+
+ /@types/node@18.18.6:
+ resolution: {integrity: sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==}
+
+ /@types/prop-types@15.7.9:
+ resolution: {integrity: sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==}
+
+ /@types/react-dom@18.2.14:
+ resolution: {integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==}
+ dependencies:
+ '@types/react': 18.2.31
+
+ /@types/react-text-mask@5.4.13:
+ resolution: {integrity: sha512-e6JFMpvdu8V9Z06jg/KLcVp1EQE8wbFPQ18uZ3e99gsfXz/CfrSYmNZ1HXjdRKthAr/oEuJ5EbyVZLlEwnXRSA==}
+ dependencies:
+ '@types/react': 18.2.31
+ dev: true
+
+ /@types/react@18.2.31:
+ resolution: {integrity: sha512-c2UnPv548q+5DFh03y8lEDeMfDwBn9G3dRwfkrxQMo/dOtRHUUO57k6pHvBIfH/VF4Nh+98mZ5aaSe+2echD5g==}
+ dependencies:
+ '@types/prop-types': 15.7.9
+ '@types/scheduler': 0.16.5
+ csstype: 3.1.2
+
+ /@types/scheduler@0.16.5:
+ resolution: {integrity: sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==}
+
+ /@types/semver@7.5.4:
+ resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==}
+ dev: true
+
+ /@types/trusted-types@2.0.5:
+ resolution: {integrity: sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA==}
+ dev: false
+
+ /@types/ws@7.4.7:
+ resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ dependencies:
+ '@types/node': 18.18.6
+ dev: false
+
+ /@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.52.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.9.1
+ '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ '@typescript-eslint/scope-manager': 6.8.0
+ '@typescript-eslint/type-utils': 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.8.0
+ debug: 4.3.4
+ eslint: 8.52.0
+ graphemer: 1.4.0
+ ignore: 5.2.4
+ natural-compare: 1.4.0
+ semver: 7.5.4
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 6.8.0
+ '@typescript-eslint/types': 6.8.0
+ '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.8.0
+ debug: 4.3.4
+ eslint: 8.52.0
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/scope-manager@6.8.0:
+ resolution: {integrity: sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.8.0
+ '@typescript-eslint/visitor-keys': 6.8.0
+ dev: true
+
+ /@typescript-eslint/type-utils@6.8.0(eslint@8.52.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ debug: 4.3.4
+ eslint: 8.52.0
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types@6.8.0:
+ resolution: {integrity: sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree@6.8.0(typescript@5.2.2):
+ resolution: {integrity: sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 6.8.0
+ '@typescript-eslint/visitor-keys': 6.8.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.5.4
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/utils@6.8.0(eslint@8.52.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
+ '@types/json-schema': 7.0.14
+ '@types/semver': 7.5.4
+ '@typescript-eslint/scope-manager': 6.8.0
+ '@typescript-eslint/types': 6.8.0
+ '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2)
+ eslint: 8.52.0
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys@6.8.0:
+ resolution: {integrity: sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.8.0
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /@ungap/structured-clone@1.2.0:
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+ dev: true
+
+ /@vanilla-extract/css@1.9.1:
+ resolution: {integrity: sha512-pu2SFiff5jRhPwvGoj8cM5l/qIyLvigOmy22ss5DGjwV5pJYezRjDLxWumi2luIwioMWvh9EozCjyfH8nq+7fQ==}
+ dependencies:
+ '@emotion/hash': 0.8.0
+ '@vanilla-extract/private': 1.0.3
+ ahocorasick: 1.0.2
+ chalk: 4.1.2
+ css-what: 5.1.0
+ cssesc: 3.0.0
+ csstype: 3.1.2
+ deep-object-diff: 1.1.9
+ deepmerge: 4.3.1
+ media-query-parser: 2.0.2
+ outdent: 0.8.0
+ dev: false
+
+ /@vanilla-extract/dynamic@2.0.2:
+ resolution: {integrity: sha512-U4nKaEQ8Kuz+exXEr51DUpyaOuzo24/S/k1YbDPQR06cYcNjQqvwFRnwWtZ+9ImocqM1wTKtzrdUgSTtLGIwAg==}
+ dependencies:
+ '@vanilla-extract/private': 1.0.3
+ dev: false
+
+ /@vanilla-extract/private@1.0.3:
+ resolution: {integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==}
+ dev: false
+
+ /@vanilla-extract/sprinkles@1.5.0(@vanilla-extract/css@1.9.1):
+ resolution: {integrity: sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw==}
+ peerDependencies:
+ '@vanilla-extract/css': ^1.0.0
+ dependencies:
+ '@vanilla-extract/css': 1.9.1
+ dev: false
+
+ /@wagmi/connectors@3.1.3(@types/react@18.2.31)(react@18.2.0)(typescript@5.2.2)(viem@1.16.6)(zod@3.22.4):
+ resolution: {integrity: sha512-UgwsQKQDFObJVJMf9pDfFoXTv710o4zrTHyhIWKBTMMkLpCMsMxN5+ZaDhBYt/BgoRinfRYQo8uwuwLhxE6Log==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ viem: '>=0.3.35'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@coinbase/wallet-sdk': 3.7.2
+ '@ledgerhq/connect-kit-loader': 1.1.2
+ '@safe-global/safe-apps-provider': 0.17.1(typescript@5.2.2)(zod@3.22.4)
+ '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.2.2)(zod@3.22.4)
+ '@walletconnect/ethereum-provider': 2.10.2(@walletconnect/modal@2.6.2)
+ '@walletconnect/legacy-provider': 2.0.0
+ '@walletconnect/modal': 2.6.2(@types/react@18.2.31)(react@18.2.0)
+ '@walletconnect/utils': 2.10.2
+ abitype: 0.8.7(typescript@5.2.2)(zod@3.22.4)
+ eventemitter3: 4.0.7
+ typescript: 5.2.2
+ viem: 1.16.6(typescript@5.2.2)(zod@3.22.4)
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - '@types/react'
+ - bufferutil
+ - encoding
+ - lokijs
+ - react
+ - supports-color
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /@wagmi/core@1.4.5(@types/react@18.2.31)(react@18.2.0)(typescript@5.2.2)(viem@1.16.6)(zod@3.22.4):
+ resolution: {integrity: sha512-N9luRb1Uk4tBN9kaYcQSWKE9AsRt/rvZaFt5IZech4JPzNN2sQlfhKd9GEjOXYRDqEPHdDvos7qyBKiDNTz4GA==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ viem: '>=0.3.35'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@wagmi/connectors': 3.1.3(@types/react@18.2.31)(react@18.2.0)(typescript@5.2.2)(viem@1.16.6)(zod@3.22.4)
+ abitype: 0.8.7(typescript@5.2.2)(zod@3.22.4)
+ eventemitter3: 4.0.7
+ typescript: 5.2.2
+ viem: 1.16.6(typescript@5.2.2)(zod@3.22.4)
+ zustand: 4.4.4(@types/react@18.2.31)(react@18.2.0)
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - '@types/react'
+ - bufferutil
+ - encoding
+ - immer
+ - lokijs
+ - react
+ - supports-color
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /@walletconnect/core@2.10.2:
+ resolution: {integrity: sha512-JQz/xp3SLEpTeRQctdck2ugSBVEpMxoSE+lFi2voJkZop1hv6P+uqr6E4PzjFluAjeAnKlT1xvra0aFWjPWVcw==}
+ dependencies:
+ '@walletconnect/heartbeat': 1.2.1
+ '@walletconnect/jsonrpc-provider': 1.0.13
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/jsonrpc-ws-connection': 1.0.13
+ '@walletconnect/keyvaluestorage': 1.0.2
+ '@walletconnect/logger': 2.0.1
+ '@walletconnect/relay-api': 1.0.9
+ '@walletconnect/relay-auth': 1.0.4
+ '@walletconnect/safe-json': 1.0.2
+ '@walletconnect/time': 1.0.2
+ '@walletconnect/types': 2.10.2
+ '@walletconnect/utils': 2.10.2
+ events: 3.3.0
+ lodash.isequal: 4.5.0
+ uint8arrays: 3.1.1
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - bufferutil
+ - lokijs
+ - utf-8-validate
+ dev: false
+
+ /@walletconnect/crypto@1.0.3:
+ resolution: {integrity: sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g==}
+ dependencies:
+ '@walletconnect/encoding': 1.0.2
+ '@walletconnect/environment': 1.0.1
+ '@walletconnect/randombytes': 1.0.3
+ aes-js: 3.1.2
+ hash.js: 1.1.7
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/encoding@1.0.2:
+ resolution: {integrity: sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==}
+ dependencies:
+ is-typedarray: 1.0.0
+ tslib: 1.14.1
+ typedarray-to-buffer: 3.1.5
+ dev: false
+
+ /@walletconnect/environment@1.0.1:
+ resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==}
+ dependencies:
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/ethereum-provider@2.10.2(@walletconnect/modal@2.6.2):
+ resolution: {integrity: sha512-QMYFZ6+rVq2CJLdIPdKK0j1Qm66UA27oQU5V2SrL8EVwl7wFfm0Bq7fnL+qAWeDpn612dNeNErpk/ROa1zWlWg==}
+ peerDependencies:
+ '@walletconnect/modal': '>=2'
+ peerDependenciesMeta:
+ '@walletconnect/modal':
+ optional: true
+ dependencies:
+ '@walletconnect/jsonrpc-http-connection': 1.0.7
+ '@walletconnect/jsonrpc-provider': 1.0.13
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/modal': 2.6.2(@types/react@18.2.31)(react@18.2.0)
+ '@walletconnect/sign-client': 2.10.2
+ '@walletconnect/types': 2.10.2
+ '@walletconnect/universal-provider': 2.10.2
+ '@walletconnect/utils': 2.10.2
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - bufferutil
+ - encoding
+ - lokijs
+ - utf-8-validate
+ dev: false
+
+ /@walletconnect/events@1.0.1:
+ resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==}
+ dependencies:
+ keyvaluestorage-interface: 1.0.0
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/heartbeat@1.2.1:
+ resolution: {integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==}
+ dependencies:
+ '@walletconnect/events': 1.0.1
+ '@walletconnect/time': 1.0.2
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/jsonrpc-http-connection@1.0.7:
+ resolution: {integrity: sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==}
+ dependencies:
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/safe-json': 1.0.2
+ cross-fetch: 3.1.8
+ tslib: 1.14.1
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /@walletconnect/jsonrpc-provider@1.0.13:
+ resolution: {integrity: sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==}
+ dependencies:
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/safe-json': 1.0.2
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/jsonrpc-types@1.0.3:
+ resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==}
+ dependencies:
+ keyvaluestorage-interface: 1.0.0
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/jsonrpc-utils@1.0.8:
+ resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==}
+ dependencies:
+ '@walletconnect/environment': 1.0.1
+ '@walletconnect/jsonrpc-types': 1.0.3
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/jsonrpc-ws-connection@1.0.13:
+ resolution: {integrity: sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg==}
+ dependencies:
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/safe-json': 1.0.2
+ events: 3.3.0
+ tslib: 1.14.1
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ dev: false
+
+ /@walletconnect/keyvaluestorage@1.0.2:
+ resolution: {integrity: sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==}
+ peerDependencies:
+ '@react-native-async-storage/async-storage': 1.x
+ lokijs: 1.x
+ peerDependenciesMeta:
+ '@react-native-async-storage/async-storage':
+ optional: true
+ lokijs:
+ optional: true
+ dependencies:
+ safe-json-utils: 1.1.1
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/legacy-client@2.0.0:
+ resolution: {integrity: sha512-v5L7rYk9loVnfvUf0mF+76bUPFaU5/Vh7mzL6/950CD/yoGdzYZ3Kj+L7mkC6HPMEGeQsBP1+sqBuiVGZ/aODA==}
+ dependencies:
+ '@walletconnect/crypto': 1.0.3
+ '@walletconnect/encoding': 1.0.2
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/legacy-types': 2.0.0
+ '@walletconnect/legacy-utils': 2.0.0
+ '@walletconnect/safe-json': 1.0.2
+ '@walletconnect/window-getters': 1.0.1
+ '@walletconnect/window-metadata': 1.0.1
+ detect-browser: 5.3.0
+ query-string: 6.14.1
+ dev: false
+
+ /@walletconnect/legacy-modal@2.0.0:
+ resolution: {integrity: sha512-jckNd8lMhm4X7dX9TDdxM3bXKJnaqkRs6K2Mo5j6GmbIF9Eyx40jZ5+q457RVxvM6ciZEDT5s1wBHWdWoOo+9Q==}
+ dependencies:
+ '@walletconnect/legacy-types': 2.0.0
+ '@walletconnect/legacy-utils': 2.0.0
+ copy-to-clipboard: 3.3.3
+ preact: 10.18.1
+ qrcode: 1.5.3
+ dev: false
+
+ /@walletconnect/legacy-provider@2.0.0:
+ resolution: {integrity: sha512-A8xPebMI1A+50HbWwTpFCbwP7G+1NGKdTKyg8BUUg3h3Y9JucpC1W6w/x0v1Xw7qFEqQnz74LoIN/A3ytH9xrQ==}
+ dependencies:
+ '@walletconnect/jsonrpc-http-connection': 1.0.7
+ '@walletconnect/jsonrpc-provider': 1.0.13
+ '@walletconnect/legacy-client': 2.0.0
+ '@walletconnect/legacy-modal': 2.0.0
+ '@walletconnect/legacy-types': 2.0.0
+ '@walletconnect/legacy-utils': 2.0.0
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /@walletconnect/legacy-types@2.0.0:
+ resolution: {integrity: sha512-sOVrA7HUdbI1OwKyPOQU0/DdvTSVFlsXWpAk2K2WvP2erTkBWPMTJq6cv2BmKdoJ3p6gLApT7sd+jHi3OF71uw==}
+ dependencies:
+ '@walletconnect/jsonrpc-types': 1.0.3
+ dev: false
+
+ /@walletconnect/legacy-utils@2.0.0:
+ resolution: {integrity: sha512-CPWxSVVXw0kgNCxvU126g4GiV3mzXmC8IPJ15twE46aJ1FX+RHEIfAzFMFz2F2+fEhBxL63A7dwNQKDXorRPcQ==}
+ dependencies:
+ '@walletconnect/encoding': 1.0.2
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/legacy-types': 2.0.0
+ '@walletconnect/safe-json': 1.0.2
+ '@walletconnect/window-getters': 1.0.1
+ '@walletconnect/window-metadata': 1.0.1
+ detect-browser: 5.3.0
+ query-string: 6.14.1
+ dev: false
+
+ /@walletconnect/logger@2.0.1:
+ resolution: {integrity: sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==}
+ dependencies:
+ pino: 7.11.0
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/modal-core@2.6.2(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==}
+ dependencies:
+ valtio: 1.11.2(@types/react@18.2.31)(react@18.2.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - react
+ dev: false
+
+ /@walletconnect/modal-ui@2.6.2(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==}
+ dependencies:
+ '@walletconnect/modal-core': 2.6.2(@types/react@18.2.31)(react@18.2.0)
+ lit: 2.8.0
+ motion: 10.16.2
+ qrcode: 1.5.3
+ transitivePeerDependencies:
+ - '@types/react'
+ - react
+ dev: false
+
+ /@walletconnect/modal@2.6.2(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==}
+ dependencies:
+ '@walletconnect/modal-core': 2.6.2(@types/react@18.2.31)(react@18.2.0)
+ '@walletconnect/modal-ui': 2.6.2(@types/react@18.2.31)(react@18.2.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - react
+ dev: false
+
+ /@walletconnect/randombytes@1.0.3:
+ resolution: {integrity: sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==}
+ dependencies:
+ '@walletconnect/encoding': 1.0.2
+ '@walletconnect/environment': 1.0.1
+ randombytes: 2.1.0
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/relay-api@1.0.9:
+ resolution: {integrity: sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==}
+ dependencies:
+ '@walletconnect/jsonrpc-types': 1.0.3
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/relay-auth@1.0.4:
+ resolution: {integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==}
+ dependencies:
+ '@stablelib/ed25519': 1.0.3
+ '@stablelib/random': 1.0.2
+ '@walletconnect/safe-json': 1.0.2
+ '@walletconnect/time': 1.0.2
+ tslib: 1.14.1
+ uint8arrays: 3.1.1
+ dev: false
+
+ /@walletconnect/safe-json@1.0.2:
+ resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==}
+ dependencies:
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/sign-client@2.10.2:
+ resolution: {integrity: sha512-vviSLV3f92I0bReX+OLr1HmbH0uIzYEQQFd1MzIfDk9PkfFT/LLAHhUnDaIAMkIdippqDcJia+5QEtT4JihL3Q==}
+ dependencies:
+ '@walletconnect/core': 2.10.2
+ '@walletconnect/events': 1.0.1
+ '@walletconnect/heartbeat': 1.2.1
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/logger': 2.0.1
+ '@walletconnect/time': 1.0.2
+ '@walletconnect/types': 2.10.2
+ '@walletconnect/utils': 2.10.2
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - bufferutil
+ - lokijs
+ - utf-8-validate
+ dev: false
+
+ /@walletconnect/time@1.0.2:
+ resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==}
+ dependencies:
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/types@2.10.2:
+ resolution: {integrity: sha512-luNV+07Wdla4STi9AejseCQY31tzWKQ5a7C3zZZaRK/di+rFaAAb7YW04OP4klE7tw/mJRGPTlekZElmHxO8kQ==}
+ dependencies:
+ '@walletconnect/events': 1.0.1
+ '@walletconnect/heartbeat': 1.2.1
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/keyvaluestorage': 1.0.2
+ '@walletconnect/logger': 2.0.1
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - lokijs
+ dev: false
+
+ /@walletconnect/universal-provider@2.10.2:
+ resolution: {integrity: sha512-wFgI0LbQ3D56sgaUMsgOHCM5m8WLxiC71BGuCKQfApgsbNMVKugYVy2zWHyUyi8sqTQHI+uSaVpDev4UHq9LEw==}
+ dependencies:
+ '@walletconnect/jsonrpc-http-connection': 1.0.7
+ '@walletconnect/jsonrpc-provider': 1.0.13
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/logger': 2.0.1
+ '@walletconnect/sign-client': 2.10.2
+ '@walletconnect/types': 2.10.2
+ '@walletconnect/utils': 2.10.2
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - bufferutil
+ - encoding
+ - lokijs
+ - utf-8-validate
+ dev: false
+
+ /@walletconnect/utils@2.10.2:
+ resolution: {integrity: sha512-syxXRpc2yhSknMu3IfiBGobxOY7fLfLTJuw+ppKaeO6WUdZpIit3wfuGOcc0Ms3ZPFCrGfyGOoZsCvgdXtptRg==}
+ dependencies:
+ '@stablelib/chacha20poly1305': 1.0.1
+ '@stablelib/hkdf': 1.0.1
+ '@stablelib/random': 1.0.2
+ '@stablelib/sha256': 1.0.1
+ '@stablelib/x25519': 1.0.3
+ '@walletconnect/relay-api': 1.0.9
+ '@walletconnect/safe-json': 1.0.2
+ '@walletconnect/time': 1.0.2
+ '@walletconnect/types': 2.10.2
+ '@walletconnect/window-getters': 1.0.1
+ '@walletconnect/window-metadata': 1.0.1
+ detect-browser: 5.3.0
+ query-string: 7.1.3
+ uint8arrays: 3.1.1
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - lokijs
+ dev: false
+
+ /@walletconnect/window-getters@1.0.1:
+ resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==}
+ dependencies:
+ tslib: 1.14.1
+ dev: false
+
+ /@walletconnect/window-metadata@1.0.1:
+ resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==}
+ dependencies:
+ '@walletconnect/window-getters': 1.0.1
+ tslib: 1.14.1
+ dev: false
+
+ /@yr/monotone-cubic-spline@1.0.3:
+ resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==}
+ dev: false
+
+ /JSONStream@1.3.5:
+ resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ hasBin: true
+ dependencies:
+ jsonparse: 1.3.1
+ through: 2.3.8
+ dev: false
+
+ /abitype@0.8.7(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ zod: ^3 >=3.19.1
+ peerDependenciesMeta:
+ zod:
+ optional: true
+ dependencies:
+ typescript: 5.2.2
+ zod: 3.22.4
+ dev: false
+
+ /abitype@0.9.8(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ zod: ^3 >=3.19.1
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ dependencies:
+ typescript: 5.2.2
+ zod: 3.22.4
+ dev: false
+
+ /acorn-jsx@5.3.2(acorn@8.10.0):
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ acorn: 8.10.0
+ dev: true
+
+ /acorn@8.10.0:
+ resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /aes-js@3.1.2:
+ resolution: {integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==}
+ dev: false
+
+ /agentkeepalive@4.5.0:
+ resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
+ engines: {node: '>= 8.0.0'}
+ dependencies:
+ humanize-ms: 1.2.1
+ dev: false
+
+ /ahocorasick@1.0.2:
+ resolution: {integrity: sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA==}
+ dev: false
+
+ /ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+ dev: true
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+
+ /any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ /apexcharts@3.44.0:
+ resolution: {integrity: sha512-u7Xzrbcxc2yWznN78Jh5NMCYVAsWDfBjRl5ea++rVzFAqjU2hLz4RgKIFwYOBDRQtW1e/Qz8azJTqIJ1+Vu9Qg==}
+ dependencies:
+ '@yr/monotone-cubic-spline': 1.0.3
+ svg.draggable.js: 2.2.2
+ svg.easing.js: 2.0.0
+ svg.filter.js: 2.0.2
+ svg.pathmorphing.js: 0.1.3
+ svg.resize.js: 1.4.3
+ svg.select.js: 3.0.1
+ dev: false
+
+ /arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
+
+ /aria-hidden@1.2.3:
+ resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
+ /aria-query@5.3.0:
+ resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
+ dependencies:
+ dequal: 2.0.3
+ dev: true
+
+ /array-buffer-byte-length@1.0.0:
+ resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
+ dependencies:
+ call-bind: 1.0.5
+ is-array-buffer: 3.0.2
+ dev: true
+
+ /array-includes@3.1.7:
+ resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ get-intrinsic: 1.2.2
+ is-string: 1.0.7
+ dev: true
+
+ /array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /array.prototype.findlastindex@1.2.3:
+ resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ es-shim-unscopables: 1.0.2
+ get-intrinsic: 1.2.2
+ dev: true
+
+ /array.prototype.flat@1.3.2:
+ resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ es-shim-unscopables: 1.0.2
+ dev: true
+
+ /array.prototype.flatmap@1.3.2:
+ resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ es-shim-unscopables: 1.0.2
+ dev: true
+
+ /array.prototype.tosorted@1.1.2:
+ resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ es-shim-unscopables: 1.0.2
+ get-intrinsic: 1.2.2
+ dev: true
+
+ /arraybuffer.prototype.slice@1.0.2:
+ resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ get-intrinsic: 1.2.2
+ is-array-buffer: 3.0.2
+ is-shared-array-buffer: 1.0.2
+ dev: true
+
+ /ast-types-flow@0.0.7:
+ resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
+ dev: true
+
+ /async-mutex@0.2.6:
+ resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
+ /asynciterator.prototype@1.0.0:
+ resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /atomic-sleep@1.0.0:
+ resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
+ engines: {node: '>=8.0.0'}
+ dev: false
+
+ /autoprefixer@10.4.16(postcss@8.4.31):
+ resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ browserslist: 4.22.1
+ caniuse-lite: 1.0.30001553
+ fraction.js: 4.3.7
+ normalize-range: 0.1.2
+ picocolors: 1.0.0
+ postcss: 8.4.31
+ postcss-value-parser: 4.2.0
+ dev: true
+
+ /available-typed-arrays@1.0.5:
+ resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+ engines: {node: '>= 0.4'}
+
+ /axe-core@4.8.2:
+ resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /axobject-query@3.2.1:
+ resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
+ dependencies:
+ dequal: 2.0.3
+ dev: true
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ /base-x@3.0.9:
+ resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: false
+
+ /base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: false
+
+ /bigint-buffer@1.1.5:
+ resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
+ engines: {node: '>= 10.0.0'}
+ requiresBuild: true
+ dependencies:
+ bindings: 1.5.0
+ dev: false
+
+ /bignumber.js@9.1.2:
+ resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==}
+ dev: false
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+
+ /bind-decorator@1.0.11:
+ resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==}
+ dev: false
+
+ /bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+ dependencies:
+ file-uri-to-path: 1.0.0
+ dev: false
+
+ /bn.js@5.2.1:
+ resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
+ dev: false
+
+ /borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ dependencies:
+ bn.js: 5.2.1
+ bs58: 4.0.1
+ text-encoding-utf-8: 1.0.2
+ dev: false
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+
+ /browserslist@4.22.1:
+ resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001553
+ electron-to-chromium: 1.4.563
+ node-releases: 2.0.13
+ update-browserslist-db: 1.0.13(browserslist@4.22.1)
+ dev: true
+
+ /bs58@4.0.1:
+ resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
+ dependencies:
+ base-x: 3.0.9
+ dev: false
+
+ /buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+ dev: false
+
+ /bufferutil@4.0.8:
+ resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==}
+ engines: {node: '>=6.14.2'}
+ requiresBuild: true
+ dependencies:
+ node-gyp-build: 4.6.1
+ dev: false
+
+ /busboy@1.6.0:
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
+ engines: {node: '>=10.16.0'}
+ dependencies:
+ streamsearch: 1.1.0
+ dev: false
+
+ /call-bind@1.0.5:
+ resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
+ dependencies:
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.2
+ set-function-length: 1.1.1
+
+ /callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
+ /camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /caniuse-lite@1.0.30001553:
+ resolution: {integrity: sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==}
+
+ /chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ /chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ /class-variance-authority@0.7.0:
+ resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
+ dependencies:
+ clsx: 2.0.0
+ dev: false
+
+ /client-only@0.0.1:
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
+ dev: false
+
+ /cliui@6.0.0:
+ resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+ dev: false
+
+ /clsx@1.1.1:
+ resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /clsx@1.2.1:
+ resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /clsx@2.0.0:
+ resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ dev: false
+
+ /commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ /copy-anything@3.0.5:
+ resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
+ engines: {node: '>=12.13'}
+ dependencies:
+ is-what: 4.1.15
+ dev: false
+
+ /copy-to-clipboard@3.3.3:
+ resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
+ dependencies:
+ toggle-selection: 1.0.6
+ dev: false
+
+ /cross-fetch@3.1.8:
+ resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==}
+ dependencies:
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: true
+
+ /cryptocurrency-icons@0.18.1:
+ resolution: {integrity: sha512-dvR5O8JOmav3559Yb0Igpkia+3vpt/aeNvMu5ZIVUG2Bzpq9wNcOJRIQas49XJrPjtZ98GAEn3aDQO+w7uhS2w==}
+ dev: false
+
+ /css-what@5.1.0:
+ resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==}
+ engines: {node: '>= 6'}
+ dev: false
+
+ /cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /csstype@3.1.2:
+ resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
+
+ /damerau-levenshtein@1.0.8:
+ resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
+ dev: true
+
+ /debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ dev: true
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
+ /decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+ dev: false
+
+ /deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ dev: true
+
+ /deep-object-diff@1.1.9:
+ resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==}
+ dev: false
+
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /define-data-property@1.1.1:
+ resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.2
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.1
+
+ /define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.1
+ has-property-descriptors: 1.0.1
+ object-keys: 1.1.1
+ dev: true
+
+ /delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /detect-browser@5.3.0:
+ resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==}
+ dev: false
+
+ /detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+ dev: false
+
+ /didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
+ /dijkstrajs@1.0.3:
+ resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==}
+ dev: false
+
+ /dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ dev: true
+
+ /dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
+ /doctrine@2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /duplexify@4.1.2:
+ resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==}
+ dependencies:
+ end-of-stream: 1.4.4
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ stream-shift: 1.0.1
+ dev: false
+
+ /electron-to-chromium@1.4.563:
+ resolution: {integrity: sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==}
+ dev: true
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: false
+
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
+ /encode-utf8@1.0.3:
+ resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==}
+ dev: false
+
+ /end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ dependencies:
+ once: 1.4.0
+ dev: false
+
+ /enhanced-resolve@5.15.0:
+ resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+ dev: true
+
+ /es-abstract@1.22.3:
+ resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ arraybuffer.prototype.slice: 1.0.2
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.5
+ es-set-tostringtag: 2.0.2
+ es-to-primitive: 1.2.1
+ function.prototype.name: 1.1.6
+ get-intrinsic: 1.2.2
+ get-symbol-description: 1.0.0
+ globalthis: 1.0.3
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.1
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ hasown: 2.0.0
+ internal-slot: 1.0.6
+ is-array-buffer: 3.0.2
+ is-callable: 1.2.7
+ is-negative-zero: 2.0.2
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
+ is-string: 1.0.7
+ is-typed-array: 1.1.12
+ is-weakref: 1.0.2
+ object-inspect: 1.13.1
+ object-keys: 1.1.1
+ object.assign: 4.1.4
+ regexp.prototype.flags: 1.5.1
+ safe-array-concat: 1.0.1
+ safe-regex-test: 1.0.0
+ string.prototype.trim: 1.2.8
+ string.prototype.trimend: 1.0.7
+ string.prototype.trimstart: 1.0.7
+ typed-array-buffer: 1.0.0
+ typed-array-byte-length: 1.0.0
+ typed-array-byte-offset: 1.0.0
+ typed-array-length: 1.0.4
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.13
+ dev: true
+
+ /es-iterator-helpers@1.0.15:
+ resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==}
+ dependencies:
+ asynciterator.prototype: 1.0.0
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ es-set-tostringtag: 2.0.2
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.2
+ globalthis: 1.0.3
+ has-property-descriptors: 1.0.1
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.6
+ iterator.prototype: 1.1.2
+ safe-array-concat: 1.0.1
+ dev: true
+
+ /es-set-tostringtag@2.0.2:
+ resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.2
+ has-tostringtag: 1.0.0
+ hasown: 2.0.0
+ dev: true
+
+ /es-shim-unscopables@1.0.2:
+ resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
+ dependencies:
+ hasown: 2.0.0
+ dev: true
+
+ /es-to-primitive@1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
+ dev: true
+
+ /es6-promise@4.2.8:
+ resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
+ dev: false
+
+ /es6-promisify@5.0.0:
+ resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
+ dependencies:
+ es6-promise: 4.2.8
+ dev: false
+
+ /escalade@3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eslint-config-next@13.5.6(eslint@8.52.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-o8pQsUHTo9aHqJ2YiZDym5gQAMRf7O2HndHo/JZeY7TDD+W4hk6Ma8Vw54RHiBeb7OWWO5dPirQB+Is/aVQ7Kg==}
+ peerDependencies:
+ eslint: ^7.23.0 || ^8.0.0
+ typescript: '>=3.3.1'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@next/eslint-plugin-next': 13.5.6
+ '@rushstack/eslint-patch': 1.5.1
+ '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ eslint: 8.52.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.52.0)
+ eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0)
+ eslint-plugin-jsx-a11y: 6.7.1(eslint@8.52.0)
+ eslint-plugin-react: 7.33.2(eslint@8.52.0)
+ eslint-plugin-react-hooks: 4.6.0(eslint@8.52.0)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.13.1
+ resolve: 1.22.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.52.0):
+ resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ dependencies:
+ debug: 4.3.4
+ enhanced-resolve: 5.15.0
+ eslint: 8.52.0
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0)
+ eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0)
+ fast-glob: 3.3.1
+ get-tsconfig: 4.7.2
+ is-core-module: 2.13.1
+ is-glob: 4.0.3
+ transitivePeerDependencies:
+ - '@typescript-eslint/parser'
+ - eslint-import-resolver-node
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0):
+ resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ debug: 3.2.7
+ eslint: 8.52.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.52.0)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0):
+ resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2)
+ array-includes: 3.1.7
+ array.prototype.findlastindex: 1.2.3
+ array.prototype.flat: 1.3.2
+ array.prototype.flatmap: 1.3.2
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.52.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0)
+ has: 1.0.4
+ is-core-module: 2.13.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.7
+ object.groupby: 1.0.1
+ object.values: 1.1.7
+ semver: 6.3.1
+ tsconfig-paths: 3.14.2
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-plugin-jsx-a11y@6.7.1(eslint@8.52.0):
+ resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ dependencies:
+ '@babel/runtime': 7.23.2
+ aria-query: 5.3.0
+ array-includes: 3.1.7
+ array.prototype.flatmap: 1.3.2
+ ast-types-flow: 0.0.7
+ axe-core: 4.8.2
+ axobject-query: 3.2.1
+ damerau-levenshtein: 1.0.8
+ emoji-regex: 9.2.2
+ eslint: 8.52.0
+ has: 1.0.4
+ jsx-ast-utils: 3.3.5
+ language-tags: 1.0.5
+ minimatch: 3.1.2
+ object.entries: 1.1.7
+ object.fromentries: 2.0.7
+ semver: 6.3.1
+ dev: true
+
+ /eslint-plugin-react-hooks@4.6.0(eslint@8.52.0):
+ resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ dependencies:
+ eslint: 8.52.0
+ dev: true
+
+ /eslint-plugin-react@7.33.2(eslint@8.52.0):
+ resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ dependencies:
+ array-includes: 3.1.7
+ array.prototype.flatmap: 1.3.2
+ array.prototype.tosorted: 1.1.2
+ doctrine: 2.1.0
+ es-iterator-helpers: 1.0.15
+ eslint: 8.52.0
+ estraverse: 5.3.0
+ jsx-ast-utils: 3.3.5
+ minimatch: 3.1.2
+ object.entries: 1.1.7
+ object.fromentries: 2.0.7
+ object.hasown: 1.1.3
+ object.values: 1.1.7
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.5
+ semver: 6.3.1
+ string.prototype.matchall: 4.0.10
+ dev: true
+
+ /eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+ dev: true
+
+ /eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /eslint@8.52.0:
+ resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
+ '@eslint-community/regexpp': 4.9.1
+ '@eslint/eslintrc': 2.1.2
+ '@eslint/js': 8.52.0
+ '@humanwhocodes/config-array': 0.11.13
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.2.0
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.5.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.23.0
+ graphemer: 1.4.0
+ ignore: 5.2.4
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.3
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.10.0
+ acorn-jsx: 5.3.2(acorn@8.10.0)
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /eth-block-tracker@6.1.0:
+ resolution: {integrity: sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@metamask/safe-event-emitter': 2.0.0
+ '@metamask/utils': 3.6.0
+ json-rpc-random-id: 1.0.1
+ pify: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /eth-json-rpc-filters@5.1.0:
+ resolution: {integrity: sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@metamask/safe-event-emitter': 2.0.0
+ async-mutex: 0.2.6
+ eth-query: 2.1.2
+ json-rpc-engine: 6.1.0
+ pify: 5.0.0
+ dev: false
+
+ /eth-query@2.1.2:
+ resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==}
+ dependencies:
+ json-rpc-random-id: 1.0.1
+ xtend: 4.0.2
+ dev: false
+
+ /eth-rpc-errors@4.0.2:
+ resolution: {integrity: sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ==}
+ dependencies:
+ fast-safe-stringify: 2.1.1
+ dev: false
+
+ /eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ dev: false
+
+ /events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+ dev: false
+
+ /eyes@0.1.8:
+ resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
+ engines: {node: '> 0.1.90'}
+ dev: false
+
+ /fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ dev: true
+
+ /fast-glob@3.3.1:
+ resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+
+ /fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ dev: true
+
+ /fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ dev: true
+
+ /fast-redact@3.3.0:
+ resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /fast-safe-stringify@2.1.1:
+ resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
+ dev: false
+
+ /fast-stable-stringify@1.0.0:
+ resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ dev: false
+
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ dependencies:
+ reusify: 1.0.4
+
+ /file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flat-cache: 3.1.1
+ dev: true
+
+ /file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ dev: false
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+
+ /filter-obj@1.1.0:
+ resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+ dev: false
+
+ /find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+ dev: true
+
+ /flat-cache@3.1.1:
+ resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ flatted: 3.2.9
+ keyv: 4.5.4
+ rimraf: 3.0.2
+ dev: true
+
+ /flatted@3.2.9:
+ resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
+ dev: true
+
+ /for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ dependencies:
+ is-callable: 1.2.7
+
+ /fraction.js@4.3.7:
+ resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+ dev: true
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ /function.prototype.name@1.1.6:
+ resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ functions-have-names: 1.2.3
+ dev: true
+
+ /functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ dev: true
+
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ dev: false
+
+ /get-intrinsic@1.2.2:
+ resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
+ dependencies:
+ function-bind: 1.1.2
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ hasown: 2.0.0
+
+ /get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /get-symbol-description@1.0.0:
+ resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ dev: true
+
+ /get-tsconfig@4.7.2:
+ resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+ dev: true
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+
+ /glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+
+ /glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+ dev: false
+
+ /glob@7.1.6:
+ resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ /glob@7.1.7:
+ resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /globals@13.23.0:
+ resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: true
+
+ /globalthis@1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-properties: 1.2.1
+ dev: true
+
+ /globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.1
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 3.0.0
+ dev: true
+
+ /goober@2.1.13(csstype@3.1.2):
+ resolution: {integrity: sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==}
+ peerDependencies:
+ csstype: ^3.0.10
+ dependencies:
+ csstype: 3.1.2
+ dev: false
+
+ /gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ dependencies:
+ get-intrinsic: 1.2.2
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ /graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ dev: true
+
+ /has-bigints@1.0.2:
+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+ dev: true
+
+ /has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ /has-property-descriptors@1.0.1:
+ resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
+ dependencies:
+ get-intrinsic: 1.2.2
+
+ /has-proto@1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
+
+ /has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+
+ /has-tostringtag@1.0.0:
+ resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+
+ /has@1.0.4:
+ resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==}
+ engines: {node: '>= 0.4.0'}
+ dev: true
+
+ /hash.js@1.1.7:
+ resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==}
+ dependencies:
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+ dev: false
+
+ /hasown@2.0.0:
+ resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function-bind: 1.1.2
+
+ /hey-listen@1.0.8:
+ resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
+ dev: false
+
+ /humanize-ms@1.2.1:
+ resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
+ dependencies:
+ ms: 2.1.3
+ dev: false
+
+ /i18n-js@4.3.2:
+ resolution: {integrity: sha512-n8gbEbQEueym2/q2yrZk5/xKWjFcKtg3/Escw4JHSVWa8qtKqP8j7se3UjkRbHlO/REqFA0V/MG1q8tEfyHeOA==}
+ dependencies:
+ bignumber.js: 9.1.2
+ lodash: 4.17.21
+ make-plural: 7.3.0
+ dev: false
+
+ /ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: false
+
+ /ignore@5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /import-fresh@3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+ dev: true
+
+ /imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ /internal-slot@1.0.6:
+ resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.2
+ hasown: 2.0.0
+ side-channel: 1.0.4
+ dev: true
+
+ /invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+ dependencies:
+ loose-envify: 1.4.0
+ dev: false
+
+ /is-arguments@1.1.1:
+ resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ has-tostringtag: 1.0.0
+ dev: false
+
+ /is-array-buffer@3.0.2:
+ resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ is-typed-array: 1.1.12
+ dev: true
+
+ /is-async-function@2.0.0:
+ resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-bigint@1.0.4:
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+ dependencies:
+ has-bigints: 1.0.2
+ dev: true
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+
+ /is-boolean-object@1.1.2:
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ /is-core-module@2.13.1:
+ resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
+ dependencies:
+ hasown: 2.0.0
+
+ /is-date-object@1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ /is-finalizationregistry@1.0.2:
+ resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
+ dependencies:
+ call-bind: 1.0.5
+ dev: true
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /is-generator-function@1.0.10:
+ resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+
+ /is-map@2.0.2:
+ resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
+ dev: true
+
+ /is-negative-zero@2.0.2:
+ resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-number-object@1.0.7:
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ /is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-regex@1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-set@2.0.2:
+ resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
+ dev: true
+
+ /is-shared-array-buffer@1.0.2:
+ resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
+ dependencies:
+ call-bind: 1.0.5
+ dev: true
+
+ /is-string@1.0.7:
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-symbol@1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /is-typed-array@1.1.12:
+ resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ which-typed-array: 1.1.13
+
+ /is-typedarray@1.0.0:
+ resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+ dev: false
+
+ /is-weakmap@2.0.1:
+ resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
+ dev: true
+
+ /is-weakref@1.0.2:
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ dependencies:
+ call-bind: 1.0.5
+ dev: true
+
+ /is-weakset@2.0.2:
+ resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ dev: true
+
+ /is-what@4.1.15:
+ resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==}
+ engines: {node: '>=12.13'}
+ dev: false
+
+ /isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ dev: true
+
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: true
+
+ /isomorphic-ws@4.0.1(ws@7.5.9):
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+ dependencies:
+ ws: 7.5.9
+ dev: false
+
+ /isows@1.0.3(ws@8.13.0):
+ resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==}
+ peerDependencies:
+ ws: '*'
+ dependencies:
+ ws: 8.13.0
+ dev: false
+
+ /iterator.prototype@1.1.2:
+ resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
+ dependencies:
+ define-properties: 1.2.1
+ get-intrinsic: 1.2.2
+ has-symbols: 1.0.3
+ reflect.getprototypeof: 1.0.4
+ set-function-name: 2.0.1
+ dev: true
+
+ /jayson@4.1.0:
+ resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ '@types/connect': 3.4.37
+ '@types/node': 12.20.55
+ '@types/ws': 7.4.7
+ JSONStream: 1.3.5
+ commander: 2.20.3
+ delay: 5.0.0
+ es6-promisify: 5.0.0
+ eyes: 0.1.8
+ isomorphic-ws: 4.0.1(ws@7.5.9)
+ json-stringify-safe: 5.0.1
+ uuid: 8.3.2
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ dev: false
+
+ /jiti@1.20.0:
+ resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==}
+ hasBin: true
+
+ /js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ /js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+ dev: true
+
+ /json-rpc-engine@6.1.0:
+ resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ '@metamask/safe-event-emitter': 2.0.0
+ eth-rpc-errors: 4.0.2
+ dev: false
+
+ /json-rpc-random-id@1.0.1:
+ resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==}
+ dev: false
+
+ /json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ dev: true
+
+ /json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ dev: true
+
+ /json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+ dev: false
+
+ /json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.8
+ dev: true
+
+ /jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+ dev: false
+
+ /jsx-ast-utils@3.3.5:
+ resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ array-includes: 3.1.7
+ array.prototype.flat: 1.3.2
+ object.assign: 4.1.4
+ object.values: 1.1.7
+ dev: true
+
+ /keccak@3.0.4:
+ resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==}
+ engines: {node: '>=10.0.0'}
+ requiresBuild: true
+ dependencies:
+ node-addon-api: 2.0.2
+ node-gyp-build: 4.6.1
+ readable-stream: 3.6.2
+ dev: false
+
+ /keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ dependencies:
+ json-buffer: 3.0.1
+ dev: true
+
+ /keyvaluestorage-interface@1.0.0:
+ resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==}
+ dev: false
+
+ /language-subtag-registry@0.3.22:
+ resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
+ dev: true
+
+ /language-tags@1.0.5:
+ resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==}
+ dependencies:
+ language-subtag-registry: 0.3.22
+ dev: true
+
+ /levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ dev: true
+
+ /lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
+ /lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ /lit-element@3.3.3:
+ resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==}
+ dependencies:
+ '@lit-labs/ssr-dom-shim': 1.1.2
+ '@lit/reactive-element': 1.6.3
+ lit-html: 2.8.0
+ dev: false
+
+ /lit-html@2.8.0:
+ resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==}
+ dependencies:
+ '@types/trusted-types': 2.0.5
+ dev: false
+
+ /lit@2.8.0:
+ resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==}
+ dependencies:
+ '@lit/reactive-element': 1.6.3
+ lit-element: 3.3.3
+ lit-html: 2.8.0
+ dev: false
+
+ /locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-locate: 4.1.0
+ dev: false
+
+ /locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-locate: 5.0.0
+ dev: true
+
+ /lodash.isequal@4.5.0:
+ resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
+ dev: false
+
+ /lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ dev: true
+
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: false
+
+ /loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+ dependencies:
+ js-tokens: 4.0.0
+
+ /lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+
+ /lucide-react@0.288.0(react@18.2.0):
+ resolution: {integrity: sha512-ikhb/9LOkq9orPoLV9lLC4UYyoXQycBhIgH7H59ahOkk0mkcAqkD52m84RXedE/qVqZHW8rEJquInT4xGmsNqw==}
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0
+ dependencies:
+ react: 18.2.0
+ dev: false
+
+ /make-plural@7.3.0:
+ resolution: {integrity: sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw==}
+ dev: false
+
+ /media-query-parser@2.0.2:
+ resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==}
+ dependencies:
+ '@babel/runtime': 7.23.2
+ dev: false
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+
+ /minimalistic-assert@1.0.1:
+ resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+ dev: false
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: true
+
+ /motion@10.16.2:
+ resolution: {integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==}
+ dependencies:
+ '@motionone/animation': 10.16.3
+ '@motionone/dom': 10.16.4
+ '@motionone/svelte': 10.16.4
+ '@motionone/types': 10.16.3
+ '@motionone/utils': 10.16.3
+ '@motionone/vue': 10.16.4
+ dev: false
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ /multiformats@9.9.0:
+ resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
+ dev: false
+
+ /mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+
+ /nanoid@3.3.6:
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ /natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ dev: true
+
+ /next@13.5.6(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==}
+ engines: {node: '>=16.14.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ sass:
+ optional: true
+ dependencies:
+ '@next/env': 13.5.6
+ '@swc/helpers': 0.5.2
+ busboy: 1.6.0
+ caniuse-lite: 1.0.30001553
+ postcss: 8.4.31
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ styled-jsx: 5.1.1(react@18.2.0)
+ watchpack: 2.4.0
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 13.5.6
+ '@next/swc-darwin-x64': 13.5.6
+ '@next/swc-linux-arm64-gnu': 13.5.6
+ '@next/swc-linux-arm64-musl': 13.5.6
+ '@next/swc-linux-x64-gnu': 13.5.6
+ '@next/swc-linux-x64-musl': 13.5.6
+ '@next/swc-win32-arm64-msvc': 13.5.6
+ '@next/swc-win32-ia32-msvc': 13.5.6
+ '@next/swc-win32-x64-msvc': 13.5.6
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+ dev: false
+
+ /node-addon-api@2.0.2:
+ resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==}
+ dev: false
+
+ /node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: false
+
+ /node-gyp-build@4.6.1:
+ resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==}
+ hasBin: true
+ dev: false
+
+ /node-releases@2.0.13:
+ resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
+ dev: true
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ /normalize-range@0.1.2:
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ /object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ /object-inspect@1.13.1:
+ resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
+
+ /object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /object.assign@4.1.4:
+ resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+ dev: true
+
+ /object.entries@1.1.7:
+ resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ dev: true
+
+ /object.fromentries@2.0.7:
+ resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ dev: true
+
+ /object.groupby@1.0.1:
+ resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ get-intrinsic: 1.2.2
+ dev: true
+
+ /object.hasown@1.1.3:
+ resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
+ dependencies:
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ dev: true
+
+ /object.values@1.1.7:
+ resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ dev: true
+
+ /on-exit-leak-free@0.2.0:
+ resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==}
+ dev: false
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+
+ /optionator@0.9.3:
+ resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ '@aashutoshrathi/word-wrap': 1.2.6
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ dev: true
+
+ /outdent@0.8.0:
+ resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==}
+ dev: false
+
+ /p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-try: 2.2.0
+ dev: false
+
+ /p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ yocto-queue: 0.1.0
+ dev: true
+
+ /p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-limit: 2.3.0
+ dev: false
+
+ /p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-limit: 3.1.0
+ dev: true
+
+ /p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+ dev: true
+
+ /path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ /path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ /path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /picocolors@1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ /pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ /pify@3.0.0:
+ resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /pify@5.0.0:
+ resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /pino-abstract-transport@0.5.0:
+ resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==}
+ dependencies:
+ duplexify: 4.1.2
+ split2: 4.2.0
+ dev: false
+
+ /pino-std-serializers@4.0.0:
+ resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==}
+ dev: false
+
+ /pino@7.11.0:
+ resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==}
+ hasBin: true
+ dependencies:
+ atomic-sleep: 1.0.0
+ fast-redact: 3.3.0
+ on-exit-leak-free: 0.2.0
+ pino-abstract-transport: 0.5.0
+ pino-std-serializers: 4.0.0
+ process-warning: 1.0.0
+ quick-format-unescaped: 4.0.4
+ real-require: 0.1.0
+ safe-stable-stringify: 2.4.3
+ sonic-boom: 2.8.0
+ thread-stream: 0.15.2
+ dev: false
+
+ /pirates@4.0.6:
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+ engines: {node: '>= 6'}
+
+ /pngjs@5.0.0:
+ resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
+ engines: {node: '>=10.13.0'}
+ dev: false
+
+ /postcss-import@15.1.0(postcss@8.4.31):
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+ dependencies:
+ postcss: 8.4.31
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.8
+
+ /postcss-js@4.0.1(postcss@8.4.31):
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.4.31
+
+ /postcss-load-config@4.0.1(postcss@8.4.31):
+ resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
+ engines: {node: '>= 14'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ lilconfig: 2.1.0
+ postcss: 8.4.31
+ yaml: 2.3.3
+
+ /postcss-nested@6.0.1(postcss@8.4.31):
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+ dependencies:
+ postcss: 8.4.31
+ postcss-selector-parser: 6.0.13
+
+ /postcss-selector-parser@6.0.13:
+ resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ /postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ /postcss@8.4.31:
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.6
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+
+ /preact@10.18.1:
+ resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==}
+ dev: false
+
+ /prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
+ /prettier-plugin-tailwindcss@0.5.6(prettier@3.0.3):
+ resolution: {integrity: sha512-2Xgb+GQlkPAUCFi3sV+NOYcSI5XgduvDBL2Zt/hwJudeKXkyvRS65c38SB0yb9UB40+1rL83I6m0RtlOQ8eHdg==}
+ engines: {node: '>=14.21.3'}
+ peerDependencies:
+ '@ianvs/prettier-plugin-sort-imports': '*'
+ '@prettier/plugin-pug': '*'
+ '@shopify/prettier-plugin-liquid': '*'
+ '@shufo/prettier-plugin-blade': '*'
+ '@trivago/prettier-plugin-sort-imports': '*'
+ prettier: ^3.0
+ prettier-plugin-astro: '*'
+ prettier-plugin-css-order: '*'
+ prettier-plugin-import-sort: '*'
+ prettier-plugin-jsdoc: '*'
+ prettier-plugin-marko: '*'
+ prettier-plugin-organize-attributes: '*'
+ prettier-plugin-organize-imports: '*'
+ prettier-plugin-style-order: '*'
+ prettier-plugin-svelte: '*'
+ prettier-plugin-twig-melody: '*'
+ peerDependenciesMeta:
+ '@ianvs/prettier-plugin-sort-imports':
+ optional: true
+ '@prettier/plugin-pug':
+ optional: true
+ '@shopify/prettier-plugin-liquid':
+ optional: true
+ '@shufo/prettier-plugin-blade':
+ optional: true
+ '@trivago/prettier-plugin-sort-imports':
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-css-order:
+ optional: true
+ prettier-plugin-import-sort:
+ optional: true
+ prettier-plugin-jsdoc:
+ optional: true
+ prettier-plugin-marko:
+ optional: true
+ prettier-plugin-organize-attributes:
+ optional: true
+ prettier-plugin-organize-imports:
+ optional: true
+ prettier-plugin-style-order:
+ optional: true
+ prettier-plugin-svelte:
+ optional: true
+ prettier-plugin-twig-melody:
+ optional: true
+ dependencies:
+ prettier: 3.0.3
+ dev: true
+
+ /prettier@3.0.3:
+ resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dev: true
+
+ /process-warning@1.0.0:
+ resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==}
+ dev: false
+
+ /prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ /proxy-compare@2.5.1:
+ resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==}
+ dev: false
+
+ /punycode@2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /qrcode@1.5.0:
+ resolution: {integrity: sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dependencies:
+ dijkstrajs: 1.0.3
+ encode-utf8: 1.0.3
+ pngjs: 5.0.0
+ yargs: 15.4.1
+ dev: false
+
+ /qrcode@1.5.3:
+ resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dependencies:
+ dijkstrajs: 1.0.3
+ encode-utf8: 1.0.3
+ pngjs: 5.0.0
+ yargs: 15.4.1
+ dev: false
+
+ /qs@6.11.2:
+ resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==}
+ engines: {node: '>=0.6'}
+ dependencies:
+ side-channel: 1.0.4
+ dev: false
+
+ /query-string@6.14.1:
+ resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==}
+ engines: {node: '>=6'}
+ dependencies:
+ decode-uri-component: 0.2.2
+ filter-obj: 1.1.0
+ split-on-first: 1.1.0
+ strict-uri-encode: 2.0.0
+ dev: false
+
+ /query-string@7.1.3:
+ resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==}
+ engines: {node: '>=6'}
+ dependencies:
+ decode-uri-component: 0.2.2
+ filter-obj: 1.1.0
+ split-on-first: 1.1.0
+ strict-uri-encode: 2.0.0
+ dev: false
+
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ /quick-format-unescaped@4.0.4:
+ resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
+ dev: false
+
+ /randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: false
+
+ /react-apexcharts@1.4.1(apexcharts@3.44.0)(react@18.2.0):
+ resolution: {integrity: sha512-G14nVaD64Bnbgy8tYxkjuXEUp/7h30Q0U33xc3AwtGFijJB9nHqOt1a6eG0WBn055RgRg+NwqbKGtqPxy15d0Q==}
+ peerDependencies:
+ apexcharts: ^3.41.0
+ react: '>=0.13'
+ dependencies:
+ apexcharts: 3.44.0
+ prop-types: 15.8.1
+ react: 18.2.0
+ dev: false
+
+ /react-dom@18.2.0(react@18.2.0):
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
+ peerDependencies:
+ react: ^18.2.0
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.2.0
+ scheduler: 0.23.0
+ dev: false
+
+ /react-hot-toast@2.4.1(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ react: '>=16'
+ react-dom: '>=16'
+ dependencies:
+ goober: 2.1.13(csstype@3.1.2)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ transitivePeerDependencies:
+ - csstype
+ dev: false
+
+ /react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ /react-remove-scroll-bar@2.3.4(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ react: 18.2.0
+ react-style-singleton: 2.2.1(@types/react@18.2.31)(react@18.2.0)
+ tslib: 2.6.2
+ dev: false
+
+ /react-remove-scroll@2.5.4(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ react: 18.2.0
+ react-remove-scroll-bar: 2.3.4(@types/react@18.2.31)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.2.31)(react@18.2.0)
+ tslib: 2.6.2
+ use-callback-ref: 1.3.0(@types/react@18.2.31)(react@18.2.0)
+ use-sidecar: 1.1.2(@types/react@18.2.31)(react@18.2.0)
+ dev: false
+
+ /react-remove-scroll@2.5.5(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ react: 18.2.0
+ react-remove-scroll-bar: 2.3.4(@types/react@18.2.31)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.2.31)(react@18.2.0)
+ tslib: 2.6.2
+ use-callback-ref: 1.3.0(@types/react@18.2.31)(react@18.2.0)
+ use-sidecar: 1.1.2(@types/react@18.2.31)(react@18.2.0)
+ dev: false
+
+ /react-ssr-prepass@1.5.0(react@18.2.0):
+ resolution: {integrity: sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ react: 18.2.0
+ dev: false
+
+ /react-style-singleton@2.2.1(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ get-nonce: 1.0.1
+ invariant: 2.2.4
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: false
+
+ /react-text-mask@5.5.0(react@18.2.0):
+ resolution: {integrity: sha512-SLJlJQxa0uonMXsnXRpv5abIepGmHz77ylQcra0GNd7Jtk4Wj2Mtp85uGQHv1avba2uI8ZvRpIEQPpJKsqRGYw==}
+ peerDependencies:
+ react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ prop-types: 15.8.1
+ react: 18.2.0
+ dev: false
+
+ /react@18.2.0:
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ loose-envify: 1.4.0
+
+ /read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+ dependencies:
+ pify: 2.3.0
+
+ /readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+ dev: false
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+
+ /real-require@0.1.0:
+ resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==}
+ engines: {node: '>= 12.13.0'}
+ dev: false
+
+ /reflect.getprototypeof@1.0.4:
+ resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ get-intrinsic: 1.2.2
+ globalthis: 1.0.3
+ which-builtin-type: 1.1.3
+ dev: true
+
+ /regenerator-runtime@0.14.0:
+ resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
+
+ /regexp.prototype.flags@1.5.1:
+ resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ set-function-name: 2.0.1
+ dev: true
+
+ /require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /require-main-filename@2.0.0:
+ resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
+ dev: false
+
+ /resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ dev: true
+
+ /resolve@1.22.8:
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ /resolve@2.0.0-next.5:
+ resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ /rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+ dev: true
+
+ /rpc-websockets@7.6.1:
+ resolution: {integrity: sha512-MmRGaJJvxTHSRxYPjJJqcj2zWnCetw7YbYbKlD0Yc7qVw6PsZhRJg1MI3mpWlpBs+4zO+urlNfLl9zLsdOD/gA==}
+ dependencies:
+ '@babel/runtime': 7.23.2
+ eventemitter3: 4.0.7
+ uuid: 8.3.2
+ ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ optionalDependencies:
+ bufferutil: 4.0.8
+ utf-8-validate: 5.0.10
+ dev: false
+
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+
+ /rxjs@6.6.7:
+ resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
+ engines: {npm: '>=2.0.0'}
+ dependencies:
+ tslib: 1.14.1
+ dev: false
+
+ /safe-array-concat@1.0.1:
+ resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
+ engines: {node: '>=0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ has-symbols: 1.0.3
+ isarray: 2.0.5
+ dev: true
+
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: false
+
+ /safe-json-utils@1.1.1:
+ resolution: {integrity: sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==}
+ dev: false
+
+ /safe-regex-test@1.0.0:
+ resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ is-regex: 1.1.4
+ dev: true
+
+ /safe-stable-stringify@2.4.3:
+ resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /scheduler@0.23.0:
+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
+ dependencies:
+ loose-envify: 1.4.0
+ dev: false
+
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+ dev: true
+
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+
+ /set-blocking@2.0.0:
+ resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+ dev: false
+
+ /set-function-length@1.1.1:
+ resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.1
+ get-intrinsic: 1.2.2
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.1
+
+ /set-function-name@2.0.1:
+ resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.1
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.1
+ dev: true
+
+ /sha.js@2.4.11:
+ resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==}
+ hasBin: true
+ dependencies:
+ inherits: 2.0.4
+ safe-buffer: 5.2.1
+ dev: false
+
+ /shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+ dev: true
+
+ /shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /side-channel@1.0.4:
+ resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ object-inspect: 1.13.1
+
+ /slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /sonic-boom@2.8.0:
+ resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==}
+ dependencies:
+ atomic-sleep: 1.0.0
+ dev: false
+
+ /source-map-js@1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+
+ /split-on-first@1.1.0:
+ resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /split2@4.2.0:
+ resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
+ engines: {node: '>= 10.x'}
+ dev: false
+
+ /stream-browserify@3.0.0:
+ resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==}
+ dependencies:
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ dev: false
+
+ /stream-shift@1.0.1:
+ resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==}
+ dev: false
+
+ /streamsearch@1.1.0:
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
+ engines: {node: '>=10.0.0'}
+ dev: false
+
+ /strict-uri-encode@2.0.0:
+ resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: false
+
+ /string.prototype.matchall@4.0.10:
+ resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ get-intrinsic: 1.2.2
+ has-symbols: 1.0.3
+ internal-slot: 1.0.6
+ regexp.prototype.flags: 1.5.1
+ set-function-name: 2.0.1
+ side-channel: 1.0.4
+ dev: true
+
+ /string.prototype.trim@1.2.8:
+ resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ dev: true
+
+ /string.prototype.trimend@1.0.7:
+ resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ dev: true
+
+ /string.prototype.trimstart@1.0.7:
+ resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.3
+ dev: true
+
+ /string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: false
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+
+ /strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /styled-jsx@5.1.1(react@18.2.0):
+ resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@babel/core': '*'
+ babel-plugin-macros: '*'
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ babel-plugin-macros:
+ optional: true
+ dependencies:
+ client-only: 0.0.1
+ react: 18.2.0
+ dev: false
+
+ /sucrase@3.34.0:
+ resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ commander: 4.1.1
+ glob: 7.1.6
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.6
+ ts-interface-checker: 0.1.13
+
+ /superjson@1.13.3:
+ resolution: {integrity: sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==}
+ engines: {node: '>=10'}
+ dependencies:
+ copy-anything: 3.0.5
+ dev: false
+
+ /superstruct@0.14.2:
+ resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ dev: false
+
+ /superstruct@1.0.3:
+ resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==}
+ engines: {node: '>=14.0.0'}
+ dev: false
+
+ /supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ /svg.draggable.js@2.2.2:
+ resolution: {integrity: sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.easing.js@2.0.0:
+ resolution: {integrity: sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.filter.js@2.0.2:
+ resolution: {integrity: sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.js@2.7.1:
+ resolution: {integrity: sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==}
+ dev: false
+
+ /svg.pathmorphing.js@0.1.3:
+ resolution: {integrity: sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.resize.js@1.4.3:
+ resolution: {integrity: sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ svg.select.js: 2.1.2
+ dev: false
+
+ /svg.select.js@2.1.2:
+ resolution: {integrity: sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /svg.select.js@3.0.1:
+ resolution: {integrity: sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ svg.js: 2.7.1
+ dev: false
+
+ /tailwind-merge@1.14.0:
+ resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==}
+ dev: false
+
+ /tailwindcss-animate@1.0.7(tailwindcss@3.3.3):
+ resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || insiders'
+ dependencies:
+ tailwindcss: 3.3.3
+ dev: false
+
+ /tailwindcss@3.3.3:
+ resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ arg: 5.0.2
+ chokidar: 3.5.3
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.3.1
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.20.0
+ lilconfig: 2.1.0
+ micromatch: 4.0.5
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.0.0
+ postcss: 8.4.31
+ postcss-import: 15.1.0(postcss@8.4.31)
+ postcss-js: 4.0.1(postcss@8.4.31)
+ postcss-load-config: 4.0.1(postcss@8.4.31)
+ postcss-nested: 6.0.1(postcss@8.4.31)
+ postcss-selector-parser: 6.0.13
+ resolve: 1.22.8
+ sucrase: 3.34.0
+ transitivePeerDependencies:
+ - ts-node
+
+ /tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /text-encoding-utf-8@1.0.2:
+ resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
+ dev: false
+
+ /text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+ dev: true
+
+ /thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ thenify: 3.3.1
+
+ /thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ dependencies:
+ any-promise: 1.3.0
+
+ /thread-stream@0.15.2:
+ resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==}
+ dependencies:
+ real-require: 0.1.0
+ dev: false
+
+ /through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+ dev: false
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+
+ /toggle-selection@1.0.6:
+ resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
+ dev: false
+
+ /tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ dev: false
+
+ /ts-api-utils@1.0.3(typescript@5.2.2):
+ resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
+ engines: {node: '>=16.13.0'}
+ peerDependencies:
+ typescript: '>=4.2.0'
+ dependencies:
+ typescript: 5.2.2
+ dev: true
+
+ /ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
+ /tsconfig-paths@3.14.2:
+ resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+ dev: true
+
+ /tslib@1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+ dev: false
+
+ /tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: false
+
+ /type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ dev: true
+
+ /type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /typed-array-buffer@1.0.0:
+ resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-byte-length@1.0.0:
+ resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ for-each: 0.3.3
+ has-proto: 1.0.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-byte-offset@1.0.0:
+ resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.5
+ for-each: 0.3.3
+ has-proto: 1.0.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-length@1.0.4:
+ resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
+ dependencies:
+ call-bind: 1.0.5
+ for-each: 0.3.3
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typedarray-to-buffer@3.1.5:
+ resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
+ dependencies:
+ is-typedarray: 1.0.0
+ dev: false
+
+ /typescript@5.2.2:
+ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ /uint8arrays@3.1.1:
+ resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==}
+ dependencies:
+ multiformats: 9.9.0
+ dev: false
+
+ /unbox-primitive@1.0.2:
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ dependencies:
+ call-bind: 1.0.5
+ has-bigints: 1.0.2
+ has-symbols: 1.0.3
+ which-boxed-primitive: 1.0.2
+ dev: true
+
+ /update-browserslist-db@1.0.13(browserslist@4.22.1):
+ resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.22.1
+ escalade: 3.1.1
+ picocolors: 1.0.0
+ dev: true
+
+ /uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ dependencies:
+ punycode: 2.3.0
+ dev: true
+
+ /use-callback-ref@1.3.0(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: false
+
+ /use-sidecar@1.1.2(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ detect-node-es: 1.1.0
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: false
+
+ /use-sync-external-store@1.2.0(react@18.2.0):
+ resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ react: 18.2.0
+ dev: false
+
+ /utf-8-validate@5.0.10:
+ resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ engines: {node: '>=6.14.2'}
+ requiresBuild: true
+ dependencies:
+ node-gyp-build: 4.6.1
+ dev: false
+
+ /util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ /util@0.12.5:
+ resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ dependencies:
+ inherits: 2.0.4
+ is-arguments: 1.1.1
+ is-generator-function: 1.0.10
+ is-typed-array: 1.1.12
+ which-typed-array: 1.1.13
+ dev: false
+
+ /uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ hasBin: true
+ dev: false
+
+ /valtio@1.11.2(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==}
+ engines: {node: '>=12.20.0'}
+ peerDependencies:
+ '@types/react': '>=16.8'
+ react: '>=16.8'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ react:
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ proxy-compare: 2.5.1
+ react: 18.2.0
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ dev: false
+
+ /viem@1.16.6(typescript@5.2.2)(zod@3.22.4):
+ resolution: {integrity: sha512-jcWcFQ+xzIfDwexwPJRvCuCRJKEkK9iHTStG7mpU5MmuSBpACs4nATBDyXNFtUiyYTFzLlVEwWkt68K0nCSImg==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@adraffy/ens-normalize': 1.9.4
+ '@noble/curves': 1.2.0
+ '@noble/hashes': 1.3.2
+ '@scure/bip32': 1.3.2
+ '@scure/bip39': 1.2.1
+ abitype: 0.9.8(typescript@5.2.2)(zod@3.22.4)
+ isows: 1.0.3(ws@8.13.0)
+ typescript: 5.2.2
+ ws: 8.13.0
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /wagmi@1.4.5(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@1.16.6)(zod@3.22.4):
+ resolution: {integrity: sha512-Ph62E6cO5n2Z8Z5LTyZrkaNprxTsbC4w0qZJT4OJdXrEELziI8z/b4FO6amVFXdu2rDp/wpvF56e4mhKC8/Kdw==}
+ peerDependencies:
+ react: '>=17.0.0'
+ typescript: '>=5.0.4'
+ viem: '>=0.3.35'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@tanstack/query-sync-storage-persister': 4.36.1
+ '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0)
+ '@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1)
+ '@wagmi/core': 1.4.5(@types/react@18.2.31)(react@18.2.0)(typescript@5.2.2)(viem@1.16.6)(zod@3.22.4)
+ abitype: 0.8.7(typescript@5.2.2)(zod@3.22.4)
+ react: 18.2.0
+ typescript: 5.2.2
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ viem: 1.16.6(typescript@5.2.2)(zod@3.22.4)
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+ - '@types/react'
+ - bufferutil
+ - encoding
+ - immer
+ - lokijs
+ - react-dom
+ - react-native
+ - supports-color
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /watchpack@2.4.0:
+ resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ dev: false
+
+ /webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ dev: false
+
+ /whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+ dev: false
+
+ /which-boxed-primitive@1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+ dependencies:
+ is-bigint: 1.0.4
+ is-boolean-object: 1.1.2
+ is-number-object: 1.0.7
+ is-string: 1.0.7
+ is-symbol: 1.0.4
+ dev: true
+
+ /which-builtin-type@1.1.3:
+ resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function.prototype.name: 1.1.6
+ has-tostringtag: 1.0.0
+ is-async-function: 2.0.0
+ is-date-object: 1.0.5
+ is-finalizationregistry: 1.0.2
+ is-generator-function: 1.0.10
+ is-regex: 1.1.4
+ is-weakref: 1.0.2
+ isarray: 2.0.5
+ which-boxed-primitive: 1.0.2
+ which-collection: 1.0.1
+ which-typed-array: 1.1.13
+ dev: true
+
+ /which-collection@1.0.1:
+ resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
+ dependencies:
+ is-map: 2.0.2
+ is-set: 2.0.2
+ is-weakmap: 2.0.1
+ is-weakset: 2.0.2
+ dev: true
+
+ /which-module@2.0.1:
+ resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
+ dev: false
+
+ /which-typed-array@1.1.13:
+ resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.5
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+
+ /which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /wrap-ansi@6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: false
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /ws@7.5.9:
+ resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ engines: {node: '>=8.3.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: false
+
+ /ws@8.13.0:
+ resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: false
+
+ /ws@8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dependencies:
+ bufferutil: 4.0.8
+ utf-8-validate: 5.0.10
+ dev: false
+
+ /xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+ dev: false
+
+ /y18n@4.0.3:
+ resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
+ dev: false
+
+ /yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ /yaml@2.3.3:
+ resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==}
+ engines: {node: '>= 14'}
+
+ /yargs-parser@18.1.3:
+ resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ camelcase: 5.3.1
+ decamelize: 1.2.0
+ dev: false
+
+ /yargs@15.4.1:
+ resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cliui: 6.0.0
+ decamelize: 1.2.0
+ find-up: 4.1.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ require-main-filename: 2.0.0
+ set-blocking: 2.0.0
+ string-width: 4.2.3
+ which-module: 2.0.1
+ y18n: 4.0.3
+ yargs-parser: 18.1.3
+ dev: false
+
+ /yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /zod@3.22.4:
+ resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
+ dev: false
+
+ /zustand@4.4.4(@types/react@18.2.31)(react@18.2.0):
+ resolution: {integrity: sha512-5UTUIAiHMNf5+mFp7/AnzJXS7+XxktULFN0+D1sCiZWyX7ZG+AQpqs2qpYrynRij4QvoDdCD+U+bmg/cG3Ucxw==}
+ engines: {node: '>=12.7.0'}
+ peerDependencies:
+ '@types/react': '>=16.8'
+ immer: '>=9.0'
+ react: '>=16.8'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ dependencies:
+ '@types/react': 18.2.31
+ react: 18.2.0
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ dev: false
diff --git a/postcss.config.cjs b/postcss.config.cjs
new file mode 100644
index 0000000..e305dd9
--- /dev/null
+++ b/postcss.config.cjs
@@ -0,0 +1,8 @@
+const config = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
+
+module.exports = config;
diff --git a/prettier.config.mjs b/prettier.config.mjs
new file mode 100644
index 0000000..2d2fa4c
--- /dev/null
+++ b/prettier.config.mjs
@@ -0,0 +1,6 @@
+/** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').options} */
+const config = {
+ plugins: ["prettier-plugin-tailwindcss"],
+};
+
+export default config;
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..60c702a
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/src/assets/XDC.png b/src/assets/XDC.png
new file mode 100644
index 0000000..4811bb8
Binary files /dev/null and b/src/assets/XDC.png differ
diff --git a/src/assets/XDCWhite.png b/src/assets/XDCWhite.png
new file mode 100644
index 0000000..a5032ad
Binary files /dev/null and b/src/assets/XDCWhite.png differ
diff --git a/src/components/AutoanimateTest.tsx b/src/components/AutoanimateTest.tsx
new file mode 100644
index 0000000..5013fc7
--- /dev/null
+++ b/src/components/AutoanimateTest.tsx
@@ -0,0 +1,23 @@
+import React from "react";
+import { useAutoAnimate } from "@formkit/auto-animate/react";
+import { Button } from "./ui/button";
+
+const AutoanimateTest = () => {
+ const [items, setItems] = React.useState([0, 1, 2]);
+ const [parent, enableAnimations] = useAutoAnimate(/* optional config */);
+ const add = () => setItems([...items, items.length]);
+ return (
+ <>
+
+ {items.map((item) => (
+ - {item}
+ ))}
+
+
+ >
+ );
+};
+
+export default AutoanimateTest;
diff --git a/src/components/BuyDialog.tsx b/src/components/BuyDialog.tsx
new file mode 100644
index 0000000..3f2ef79
--- /dev/null
+++ b/src/components/BuyDialog.tsx
@@ -0,0 +1,150 @@
+import { ArrowDown } from "lucide-react";
+import {
+ Dialog,
+ DialogContent,
+ DialogFooter,
+ DialogHeader,
+ DialogTitle,
+ DialogTrigger,
+} from "./ui/dialog";
+import { useContractWrite } from "wagmi";
+import toast from "react-hot-toast";
+import React from "react";
+import { Separator } from "./ui/separator";
+import { ABI, formatWholePrice } from "~/utils/helpers";
+import { Button } from "./ui/button";
+import { allowedSlippage, contractAddress, currentPrice } from "~/utils/constants";
+import useFinancialDataStore from "~/stores/financialDataStore";
+
+const BuyDialog: React.FC<{
+ children: React.ReactNode;
+ collateral: string;
+ amount: string;
+}> = ({ children, collateral, amount }) => {
+ const [open, setOpen] = React.useState(false);
+ const [isLoading, setIsLoading] = React.useState(false);
+
+ const closeModal = () => {
+ setOpen(false);
+ };
+
+ return (
+
+ );
+};
+
+const BuyDialogContent = ({
+ collateral,
+ amount,
+ closeModal,
+ setIsLoading,
+ isLoading,
+}: {
+ collateral: string;
+ amount: string;
+ closeModal: () => void;
+ setIsLoading: (b: boolean) => void;
+ isLoading: boolean;
+}) => {
+ // const { config } = usePrepareContractWrite({
+ // address: contractAddress,
+ // abi: ABI,
+ // functionName: "openPosition",
+ // // size, entryPrice, side (0 = long, 1 = short)
+ // args: [BigInt(collateral), BigInt(currentPrice.toFixed(0)), 0],
+ // });
+ const { writeAsync, isLoading: isPreparing } = useContractWrite({
+ address: contractAddress,
+ abi: ABI,
+ functionName: "openPosition",
+ // size, entryPrice, side (0 = long, 1 = short)
+ args: [BigInt(collateral), BigInt(currentPrice.toFixed(0)), 0],
+ });
+
+ const writeAsyncPromise = async () => {
+ try {
+ await writeAsync();
+ } catch (_e) {
+ throw new Error();
+ }
+ };
+
+ const submit = async () => {
+ setIsLoading(true);
+ try {
+ await toast.promise(writeAsyncPromise(), {
+ loading: "placing order...",
+ success: order placed! awaiting confirmation...,
+ error: Could not place order...,
+ });
+ setIsLoading(true);
+ } catch (e) {
+ console.log("e is ", e);
+ } finally {
+ setIsLoading(false);
+ closeModal();
+ }
+ };
+
+ const disabled = isLoading || isPreparing;
+
+ return (
+
+
+ Confirm Buy / Long
+
+
+
+
+
Pay {collateral} USDT
+
+
+ To buy {formatWholePrice(parseFloat(amount))} XDC
+
+
+
+
+
+
+
Leverage
1.10x
+
Allowed Slippage
{allowedSlippage*100}%
+
+
Collateral Spread
0.00%
+
Entry Price
{useFinancialDataStore((state) => state.getLastPrice)()}
+
Price Impact
Soon
+
Acceptable Price
{Math.round(useFinancialDataStore((state) => state.getLastPrice)()*(1+allowedSlippage)*10000)/10000}
+
Liq. Price
Soon
+
+
Collateral (USDT)
{collateral}
+
Fees and Price Impact
Soon
+
+
+
+
+
+
+
+ );
+};
+
+export default BuyDialog;
diff --git a/src/components/BuyPanel.tsx b/src/components/BuyPanel.tsx
new file mode 100644
index 0000000..a2f1054
--- /dev/null
+++ b/src/components/BuyPanel.tsx
@@ -0,0 +1,131 @@
+import { Label } from "~/components/ui/label";
+import { Input } from "~/components/ui/input";
+import { Button } from "~/components/ui/button";
+import { type useBalance } from "wagmi";
+import { Separator } from "~/components/ui/separator";
+import React from "react";
+import { Usdt, Xdc } from "~/components/icons";
+import { getMockPosition } from "~/utils/helpers";
+import BuyDialog from "./BuyDialog";
+
+const BuyPanel = ({
+ balance,
+}: {
+ balance: ReturnType["data"];
+}) => {
+ const setMaxAmount = () => {
+ if (!balance) return;
+ setCollateral(balance.formatted);
+ setAmount(getMockPosition(balance.formatted));
+ };
+
+ const [collateral, setCollateral] = React.useState("");
+ const [amount, setAmount] = React.useState("");
+ const [disabled, setDisabled] = React.useState(false);
+
+ const handleCollateralChange = (e: React.ChangeEvent) => {
+ // this need to be formatted as a number with decimals separated by a dot
+ const value = e.target.value;
+
+ const regEx = /^[0-9]*$/;
+ if (value === "" || regEx.test(value)) {
+ // check if the amount is more than the balance
+ if (
+ value === "0" ||
+ (balance && parseFloat(value) > parseFloat(balance.formatted))
+ ) {
+ // if it is disable the buy btn
+ setDisabled(true);
+ } else {
+ // enable the buy btn
+ setDisabled(false);
+ }
+ setCollateral(value);
+ if (!value) {
+ setAmount("");
+ return;
+ }
+ // calculate the amount
+ setAmount((parseFloat(value) * 1.1).toFixed(2).toString());
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ Spread:
+ 3.50%
+
+ -
+ Volume:
+ 10000000
+
+
+
+
+ );
+};
+
+export default BuyPanel;
diff --git a/src/components/ClosePositionDialog.tsx b/src/components/ClosePositionDialog.tsx
new file mode 100644
index 0000000..9ea68ae
--- /dev/null
+++ b/src/components/ClosePositionDialog.tsx
@@ -0,0 +1,95 @@
+import React from "react";
+import {
+ AlertDialog,
+ AlertDialogCancel,
+ AlertDialogContent,
+ AlertDialogDescription,
+ AlertDialogFooter,
+ AlertDialogHeader,
+ AlertDialogTitle,
+ AlertDialogTrigger,
+} from "./ui/alert-dialog";
+import { Button } from "./ui/button";
+import { XIcon } from "lucide-react";
+import { useContractWrite } from "wagmi";
+import toast from "react-hot-toast";
+import { ABI } from "~/utils/helpers";
+import usePositionsStore from "~/stores/positionsStore";
+
+const ClosePositionDialog = ({ positionId }: { positionId: bigint }) => {
+ const [open, setOpen] = React.useState(false);
+
+ const setPositionClosing = usePositionsStore(
+ (state) => state.setPositionClosing,
+ );
+
+ const { isLoading, writeAsync } = useContractWrite({
+ address: "0xecb504d39723b0be0e3a9aa33d646642d1051ee1",
+ abi: ABI,
+ functionName: "closePosition",
+ // positionId
+ args: [positionId],
+ });
+
+ const writeAsyncPromise = async () => {
+ try {
+ await writeAsync();
+ } catch (_e) {
+ throw new Error();
+ }
+ };
+
+ const closePosition = async () => {
+ if (isLoading) return;
+ try {
+ await toast.promise(writeAsyncPromise(), {
+ loading: "closing position...",
+ success: position is being closed! awaiting confirmation...,
+ error: Could not close the position...,
+ });
+ setPositionClosing(positionId);
+ } catch (e) {
+ console.log("e is ", e);
+ } finally {
+ setOpen(false);
+ }
+ };
+
+ return (
+ (isLoading ? null : setOpen(o))}
+ >
+
+
+
+
+
+
+ Are you sure you want to close this position?
+
+
+ This action cannot be undone. You will lose part of your collateral
+ and the position will be closed.
+
+
+
+ Cancel
+
+
+
+
+ );
+};
+
+export default ClosePositionDialog;
diff --git a/src/components/FinancialChart.tsx b/src/components/FinancialChart.tsx
new file mode 100644
index 0000000..768655f
--- /dev/null
+++ b/src/components/FinancialChart.tsx
@@ -0,0 +1,91 @@
+import React, { useEffect, useState } from "react";
+import dynamic from 'next/dynamic';
+const ReactApexChart = dynamic(() => import('react-apexcharts'), {
+ ssr: false,
+});
+//import { SampleFinancialData } from "~/utils/financialData";
+import { Button } from "./ui/button";
+import useFinancialDataStore from "~/stores/financialDataStore";
+import type { FinancialData } from "~/types";
+import { ReduceFinancialData, financialDataToD } from "~/utils/financialData";
+
+
+const FinancialChart = () => {
+
+ const financialDataStore = useFinancialDataStore((state) => state.data);
+
+ const [chartData, setChartData] = useState(ReduceFinancialData.aggregateData(financialDataStore, 15));
+ const [chartHeight, setChartHeight] = useState(450);
+
+ const state = {
+ options: {
+ series: [{
+ data: chartData.map(el => financialDataToD(el)),
+ }],
+ chart: {
+ type: 'candlestick' as const,
+ height: 350
+ },
+ /*title: {
+ text: 'CandleStick Chart',
+ align: 'left'
+ },*/
+ xaxis: {
+ type: 'datetime' as const,
+ labels: {
+ style: {
+ colors: '#ffffff' // Color for X-axis labels
+ }
+ }
+ },
+ yaxis: {
+ tooltip: {
+ enabled: true
+ },
+ labels: {
+ style: {
+ colors: '#ffffff' // Color for X-axis labels
+ }
+ }
+
+ }
+ }
+ };
+
+ const aggregateFinancialData = (d: FinancialData[], p: number) => {
+ const newData = ReduceFinancialData.aggregateData(d, p, 120); //!! 5 -> 120
+ setChartData(() => newData);
+ };
+
+ // Adjust chart height when the window resizes
+ const adjustChartHeight = () => {
+ const newHeight = window.innerHeight*0.4;
+ setChartHeight(newHeight);
+ };
+
+ useEffect(() => {
+ // Add event listener to adjust chart height on window resize
+ window.addEventListener("resize", adjustChartHeight);
+ // Initial adjustment
+ adjustChartHeight();
+ // Clean up the event listener when the component unmounts
+ return () => window.removeEventListener("resize", adjustChartHeight);
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ };
+
+ export default FinancialChart;
diff --git a/src/components/History.tsx b/src/components/History.tsx
new file mode 100644
index 0000000..a69865a
--- /dev/null
+++ b/src/components/History.tsx
@@ -0,0 +1,163 @@
+import React from "react";
+import { useAutoAnimate } from "@formkit/auto-animate/react";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs";
+import type { Pair, Position } from "~/types";
+import { ABI, formatWholePrice, getPnl } from "~/utils/helpers";
+import { useContractEvent } from "wagmi";
+import { contractAddress, defaultPair } from "~/utils/constants";
+import usePositionsStore from "~/stores/positionsStore";
+import ClosePositionDialog from "./ClosePositionDialog";
+import { Button } from "./ui/button";
+import toast from "react-hot-toast";
+
+const History = () => {
+ return (
+
+
+
+ Open positions
+
+
+ Orders
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default History;
+
+const Positions = () => {
+ const addPosition = usePositionsStore((state) => state.addPosition);
+ const removePosition = usePositionsStore((state) => state.removePosition);
+
+ useContractEvent({
+ address: contractAddress,
+ abi: ABI,
+ eventName: "PositionOpened",
+ listener(res) {
+ console.log("res is ", res);
+ try {
+ if (!res || !res[0] || !res[0].args?.positionId) {
+ throw new Error("invalid event");
+ }
+ const position = res[0].args;
+
+ const pnl = getPnl(position);
+
+ addPosition({
+ pnl,
+ pair: defaultPair,
+ closing: false,
+ // res
+ positionId: position.positionId!,
+ side: position.side!,
+ size: position.size!,
+ entryPrice: position.entryPrice!,
+ trader: position.trader!,
+ });
+ } catch (error) {
+ toast.error("could not add position...");
+ }
+ },
+ });
+
+ // watch for position closed events
+ useContractEvent({
+ address: contractAddress,
+ abi: ABI,
+ eventName: "PositionClosed",
+ listener(res) {
+ console.log("res is ", res);
+ try {
+ if (!res || !res[0] || !res[0].args?.positionId)
+ throw new Error("invalid event");
+ const positionId = res[0].args?.positionId;
+ removePosition(positionId);
+ } catch (error) {
+ toast.error("could not remove position from store");
+ }
+ },
+ });
+
+ return (
+
+
+
+ | pair |
+ side |
+ pnl |
+ size |
+ collateral |
+ entry |
+ liquidation |
+ close position |
+
+
+
+
+ );
+};
+
+const Orders = () => {
+ return orders
;
+};
+
+const Trades = () => {
+ const [parent] = useAutoAnimate();
+ const positions = usePositionsStore((state) => state.positions);
+
+ return (
+
+ {positions.map((position) => (
+
+ ))}
+
+ );
+};
+
+const Trade = ({ position }: { position: Position }) => {
+ const pairObjToString = (pair: Pair) => {
+ return `${pair.numerator.toUpperCase()}/${pair.denominator.toUpperCase()}`;
+ };
+
+ return (
+
+ |
+ {pairObjToString(position.pair)}
+ |
+ {position.side === 0 ? "long" : "short"} |
+ = 0 ? "text-green-400" : "text-red-400")
+ }
+ >
+ {formatWholePrice(getPnl(position))}
+ |
+ {formatWholePrice(position.size)} |
+ {"TBA"} |
+ {formatWholePrice(position.entryPrice)} |
+ {"TBA"} |
+
+ {position.closing ? (
+
+ ) : (
+ // closing position is not working yet
+
+ )}
+ |
+
+ );
+};
diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx
new file mode 100644
index 0000000..b37f71e
--- /dev/null
+++ b/src/components/Navbar.tsx
@@ -0,0 +1,42 @@
+import { ConnectButton } from "@rainbow-me/rainbowkit";
+import React from "react";
+import { Button } from "./ui/button";
+
+const Navbar = () => {
+ return (
+
+ );
+};
+
+export default Navbar;
diff --git a/src/components/PairHeader.tsx b/src/components/PairHeader.tsx
new file mode 100644
index 0000000..a9572cf
--- /dev/null
+++ b/src/components/PairHeader.tsx
@@ -0,0 +1,94 @@
+import React, { useEffect, useState } from "react";
+import useFinancialDataStore from "~/stores/financialDataStore";
+import type { FinancialData, Pair } from "~/types";
+
+interface PairHeaderProps {
+ pair: Pair;
+}
+
+const PairHeader = (props: PairHeaderProps) => {
+ const [loaded, setLoaded] = useState(false)
+ const financialDataStore: FinancialData[] = useFinancialDataStore((state) => state.data);
+ const _24h = financialDataStore.filter((el) => new Date(el.time) <= new Date(new Date().getTime() - (24*60*60*1000)));
+
+ const _price = useFinancialDataStore((state) => state.getLastPrice)();
+
+ const price = formatPrice(_price);
+ const change = getChange(props.pair.numerator, props.pair.denominator);
+ const high = getHigh(props.pair.numerator, props.pair.denominator);
+ const low = getLow(props.pair.numerator, props.pair.denominator);
+
+ useEffect(() => {
+ setLoaded(true);
+ }, [_price]);
+
+ function formatPrice(price: number) {
+ const goodPrice = price.toString();
+ return loaded?goodPrice:"";
+ }
+
+ function getChange(numerator: string, denominator: string) {
+ console.log(`Get 24h Change for ${numerator}Perp/${denominator} pair.`);
+ const _change = 0.0564; // Call API
+ if (_change < 0) {
+ return (_change * 100).toFixed(2) + "%";
+ } else {
+ return "+" + (_change * 100).toFixed(2) + "%";
+ }
+ }
+
+ function getHigh(numerator: string, denominator: string) {
+ console.log(`Get 24h High for ${numerator}Perp/${denominator} pair.`);
+ const _high = 1200; // Call API
+ return new Intl.NumberFormat("en-US", {
+ style: "currency",
+ currency: "USD",
+ }).format(_high);
+ }
+
+ function getLow(numerator: string, denominator: string) {
+ console.log(`Get 24h Low for ${numerator}Perp/${denominator} pair.`);
+ const _low = 800; // Call API
+ return new Intl.NumberFormat("en-US", {
+ style: "currency",
+ currency: "USD",
+ }).format(_low);
+ }
+
+ return (
+
+
+
+
+
+
+
+
24h Change
+
+ {change}
+
+
+
+
+
+ );
+};
+
+export default PairHeader;
diff --git a/src/components/SellDialog.tsx b/src/components/SellDialog.tsx
new file mode 100644
index 0000000..f6d44c5
--- /dev/null
+++ b/src/components/SellDialog.tsx
@@ -0,0 +1,152 @@
+import { ArrowDown } from "lucide-react";
+import {
+ Dialog,
+ DialogContent,
+ DialogFooter,
+ DialogHeader,
+ DialogTitle,
+ DialogTrigger,
+} from "./ui/dialog";
+import { useContractEvent, useContractWrite } from "wagmi";
+import toast from "react-hot-toast";
+import React from "react";
+import { Separator } from "./ui/separator";
+import { ABI, formatWholePrice } from "~/utils/helpers";
+import { Button } from "./ui/button";
+import { allowedSlippage, contractAddress, currentPrice } from "~/utils/constants";
+import useFinancialDataStore from "~/stores/financialDataStore";
+
+const SellDialog: React.FC<{
+ children: React.ReactNode;
+ collateral: string;
+ amount: string;
+}> = ({ children, collateral, amount }) => {
+ const [open, setOpen] = React.useState(false);
+ const [isLoading, setIsLoading] = React.useState(false);
+
+ const closeModal = () => {
+ setOpen(false);
+ };
+
+ return (
+
+ );
+};
+
+const SellDialogContent = ({
+ collateral,
+ amount,
+ closeModal,
+ setIsLoading,
+ isLoading,
+}: {
+ collateral: string;
+ amount: string;
+ closeModal: () => void;
+ setIsLoading: (b: boolean) => void;
+ isLoading: boolean;
+}) => {
+ useContractEvent({
+ address: contractAddress,
+ abi: ABI,
+ eventName: "PositionOpened",
+ listener(_position) {
+ setIsLoading(false);
+ toast.success("Your order has been placed!");
+ closeModal();
+ },
+ });
+
+ const { writeAsync, isLoading: isPreparing } = useContractWrite({
+ address: contractAddress,
+ abi: ABI,
+ functionName: "openPosition",
+ // size, entryPrice, side (0 = long, 1 = short)
+ args: [BigInt(collateral), BigInt(currentPrice.toFixed(0)), 1],
+ });
+
+ const writeAsyncPromise = async () => {
+ try {
+ await writeAsync();
+ } catch (_e) {
+ throw new Error();
+ }
+ };
+
+ const submit = async () => {
+ setIsLoading(true);
+ try {
+ await toast.promise(writeAsyncPromise(), {
+ loading: "placing order...",
+ success: order placed! awaiting confirmation...,
+ error: Could not place order...,
+ });
+ setIsLoading(true);
+ } catch (e) {
+ console.log("e is ", e);
+ } finally {
+ setIsLoading(false);
+ closeModal();
+ }
+ };
+
+ const disabled = isLoading || isPreparing;
+
+ return (
+
+
+ Confirm Sell / Short
+
+
+
+
+
Pay {collateral} USDT
+
+
+ To short {formatWholePrice(parseFloat(amount))} XDC
+
+
+
+
+
+
+
Leverage
1.10x
+
Allowed Slippage
{allowedSlippage*100}%
+
+
Collateral Spread
0.00%
+
Entry Price
{useFinancialDataStore((state) => state.getLastPrice)()}
+
Price Impact
Soon
+
Acceptable Price
{Math.round(useFinancialDataStore((state) => state.getLastPrice)()*(1-allowedSlippage)*10000)/10000}
+
Liq. Price
Soon
+
+
Collateral (USDT)
{collateral}
+
Fees and Price Impact
Soon
+
+
+
+
+
+
+
+ );
+};
+
+export default SellDialog;
diff --git a/src/components/SellPanel.tsx b/src/components/SellPanel.tsx
new file mode 100644
index 0000000..8625327
--- /dev/null
+++ b/src/components/SellPanel.tsx
@@ -0,0 +1,131 @@
+import { Label } from "~/components/ui/label";
+import { Input } from "~/components/ui/input";
+import { Button } from "~/components/ui/button";
+import { type useBalance } from "wagmi";
+import { Separator } from "~/components/ui/separator";
+import React from "react";
+import { Usdt, Xdc } from "~/components/icons";
+import { getMockPosition } from "~/utils/helpers";
+import SellDialog from "./SellDialog";
+
+const SellPanel = ({
+ balance,
+}: {
+ balance: ReturnType["data"];
+}) => {
+ const setMaxAmount = () => {
+ if (!balance) return;
+ setCollateral(balance.formatted);
+ setAmount(getMockPosition(balance.formatted));
+ };
+
+ const [collateral, setCollateral] = React.useState("");
+ const [amount, setAmount] = React.useState("");
+ const [disabled, setDisabled] = React.useState(false);
+
+ const handleCollateralChange = (e: React.ChangeEvent) => {
+ // this need to be formatted as a number with decimals separated by a dot
+ const value = e.target.value;
+
+ const regEx = /^[0-9]*$/;
+ if (value === "" || regEx.test(value)) {
+ // check if the amount is more than the balance
+ if (
+ value === "0" ||
+ (balance && parseFloat(value) > parseFloat(balance.formatted))
+ ) {
+ // if it is disable the buy btn
+ setDisabled(true);
+ } else {
+ // enable the buy btn
+ setDisabled(false);
+ }
+ setCollateral(value);
+ if (!value) {
+ setAmount("");
+ return;
+ }
+ // calculate the amount
+ setAmount((parseFloat(value) * 1.1).toFixed(2).toString());
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ Spread:
+ 3.50%
+
+ -
+ Volume:
+ 10000000
+
+
+
+
+ );
+};
+
+export default SellPanel;
diff --git a/src/components/icons/Usdt.tsx b/src/components/icons/Usdt.tsx
new file mode 100644
index 0000000..cc3c2ea
--- /dev/null
+++ b/src/components/icons/Usdt.tsx
@@ -0,0 +1,21 @@
+export default function CryptocurrencyColorUsdt(
+ props: React.SVGProps,
+) {
+ return (
+
+ );
+}
diff --git a/src/components/icons/Xdc.tsx b/src/components/icons/Xdc.tsx
new file mode 100644
index 0000000..124618b
--- /dev/null
+++ b/src/components/icons/Xdc.tsx
@@ -0,0 +1,17 @@
+import Image from "next/image";
+import React from "react";
+import XDC from "../../assets/XDCWhite.png";
+
+const Xdc = ({ height = 24, width = 24, classNames = "" }) => {
+ return (
+
+ );
+};
+
+export default Xdc;
diff --git a/src/components/icons/index.ts b/src/components/icons/index.ts
new file mode 100644
index 0000000..bfb74e7
--- /dev/null
+++ b/src/components/icons/index.ts
@@ -0,0 +1,8 @@
+import Usdt from "./Usdt";
+import Xdc from "./Xdc";
+
+export {
+ Usdt,
+ Xdc,
+ // more icons here
+};
diff --git a/src/components/index.ts b/src/components/index.ts
new file mode 100644
index 0000000..3beb80a
--- /dev/null
+++ b/src/components/index.ts
@@ -0,0 +1,10 @@
+import BuyPanel from "./BuyPanel";
+import Navbar from "./Navbar";
+import SellPanel from "./SellPanel";
+
+export {
+ Navbar,
+ BuyPanel,
+ SellPanel,
+ // other components
+};
diff --git a/src/components/lib/utils.ts b/src/components/lib/utils.ts
new file mode 100644
index 0000000..ec79801
--- /dev/null
+++ b/src/components/lib/utils.ts
@@ -0,0 +1,6 @@
+import { type ClassValue, clsx } from "clsx"
+import { twMerge } from "tailwind-merge"
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs))
+}
diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx
new file mode 100644
index 0000000..5bfa1d8
--- /dev/null
+++ b/src/components/ui/alert-dialog.tsx
@@ -0,0 +1,139 @@
+import * as React from "react";
+import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
+
+import { cn } from "~/components/lib/utils";
+import { buttonVariants } from "src/components//ui/button";
+
+const AlertDialog = AlertDialogPrimitive.Root;
+
+const AlertDialogTrigger = AlertDialogPrimitive.Trigger;
+
+const AlertDialogPortal = AlertDialogPrimitive.Portal;
+
+const AlertDialogOverlay = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, ...props }, ref) => (
+
+));
+AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
+
+const AlertDialogContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+
+));
+AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
+
+const AlertDialogHeader = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => (
+
+);
+AlertDialogHeader.displayName = "AlertDialogHeader";
+
+const AlertDialogFooter = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => (
+
+);
+AlertDialogFooter.displayName = "AlertDialogFooter";
+
+const AlertDialogTitle = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
+
+const AlertDialogDescription = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+AlertDialogDescription.displayName =
+ AlertDialogPrimitive.Description.displayName;
+
+const AlertDialogAction = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
+
+const AlertDialogCancel = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
+
+export {
+ AlertDialog,
+ AlertDialogPortal,
+ AlertDialogOverlay,
+ AlertDialogTrigger,
+ AlertDialogContent,
+ AlertDialogHeader,
+ AlertDialogFooter,
+ AlertDialogTitle,
+ AlertDialogDescription,
+ AlertDialogAction,
+ AlertDialogCancel,
+};
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
new file mode 100644
index 0000000..a1c1ee1
--- /dev/null
+++ b/src/components/ui/button.tsx
@@ -0,0 +1,56 @@
+import * as React from "react";
+import { Slot } from "@radix-ui/react-slot";
+import { cva, type VariantProps } from "class-variance-authority";
+
+import { cn } from "~/components/lib/utils";
+
+const buttonVariants = cva(
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
+ {
+ variants: {
+ variant: {
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
+ destructive:
+ "bg-destructive text-destructive-foreground hover:bg-destructive/90",
+ outline:
+ "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
+ secondary:
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
+ ghost: "hover:bg-accent hover:text-accent-foreground",
+ link: "text-primary underline-offset-4 hover:underline",
+ },
+ size: {
+ default: "h-10 px-4 py-2",
+ sm: "h-9 rounded-md px-3",
+ lg: "h-11 rounded-md px-8",
+ icon: "h-10 w-10",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ },
+);
+
+export interface ButtonProps
+ extends React.ButtonHTMLAttributes,
+ VariantProps {
+ asChild?: boolean;
+}
+
+const Button = React.forwardRef(
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
+ const Comp = asChild ? Slot : "button";
+ return (
+
+ );
+ },
+);
+Button.displayName = "Button";
+
+export { Button, buttonVariants };
diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx
new file mode 100644
index 0000000..fbee0ab
--- /dev/null
+++ b/src/components/ui/card.tsx
@@ -0,0 +1,85 @@
+import * as React from "react";
+import { cn } from "~/components/lib/utils";
+
+const Card = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+Card.displayName = "Card";
+
+const CardHeader = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardHeader.displayName = "CardHeader";
+
+const CardTitle = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardTitle.displayName = "CardTitle";
+
+const CardDescription = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardDescription.displayName = "CardDescription";
+
+const CardContent = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardContent.displayName = "CardContent";
+
+const CardFooter = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardFooter.displayName = "CardFooter";
+
+export {
+ Card,
+ CardHeader,
+ CardFooter,
+ CardTitle,
+ CardDescription,
+ CardContent,
+};
diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx
new file mode 100644
index 0000000..dc573c5
--- /dev/null
+++ b/src/components/ui/dialog.tsx
@@ -0,0 +1,120 @@
+import * as React from "react";
+import * as DialogPrimitive from "@radix-ui/react-dialog";
+import { X } from "lucide-react";
+
+import { cn } from "~/components/lib/utils";
+
+const Dialog = DialogPrimitive.Root;
+
+const DialogTrigger = DialogPrimitive.Trigger;
+
+const DialogPortal = DialogPrimitive.Portal;
+
+const DialogClose = DialogPrimitive.Close;
+
+const DialogOverlay = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
+
+const DialogContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, ...props }, ref) => (
+
+
+
+ {children}
+
+
+ Close
+
+
+
+));
+DialogContent.displayName = DialogPrimitive.Content.displayName;
+
+const DialogHeader = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => (
+
+);
+DialogHeader.displayName = "DialogHeader";
+
+const DialogFooter = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => (
+
+);
+DialogFooter.displayName = "DialogFooter";
+
+const DialogTitle = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+DialogTitle.displayName = DialogPrimitive.Title.displayName;
+
+const DialogDescription = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+DialogDescription.displayName = DialogPrimitive.Description.displayName;
+
+export {
+ Dialog,
+ DialogPortal,
+ DialogOverlay,
+ DialogClose,
+ DialogTrigger,
+ DialogContent,
+ DialogHeader,
+ DialogFooter,
+ DialogTitle,
+ DialogDescription,
+};
diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx
new file mode 100644
index 0000000..2669dbf
--- /dev/null
+++ b/src/components/ui/input.tsx
@@ -0,0 +1,24 @@
+import * as React from "react";
+
+import { cn } from "~/components/lib/utils";
+
+export type InputProps = React.InputHTMLAttributes;
+
+const Input = React.forwardRef(
+ ({ className, type, ...props }, ref) => {
+ return (
+
+ );
+ },
+);
+Input.displayName = "Input";
+
+export { Input };
diff --git a/src/components/ui/label.tsx b/src/components/ui/label.tsx
new file mode 100644
index 0000000..f1e1e7e
--- /dev/null
+++ b/src/components/ui/label.tsx
@@ -0,0 +1,24 @@
+import * as React from "react"
+import * as LabelPrimitive from "@radix-ui/react-label"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "~/components/lib/utils"
+
+const labelVariants = cva(
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
+)
+
+const Label = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef &
+ VariantProps
+>(({ className, ...props }, ref) => (
+
+))
+Label.displayName = LabelPrimitive.Root.displayName
+
+export { Label }
diff --git a/src/components/ui/separator.tsx b/src/components/ui/separator.tsx
new file mode 100644
index 0000000..9f64dcc
--- /dev/null
+++ b/src/components/ui/separator.tsx
@@ -0,0 +1,29 @@
+import * as React from "react"
+import * as SeparatorPrimitive from "@radix-ui/react-separator"
+
+import { cn } from "~/components/lib/utils"
+
+const Separator = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(
+ (
+ { className, orientation = "horizontal", decorative = true, ...props },
+ ref
+ ) => (
+
+ )
+)
+Separator.displayName = SeparatorPrimitive.Root.displayName
+
+export { Separator }
diff --git a/src/components/ui/sheet.tsx b/src/components/ui/sheet.tsx
new file mode 100644
index 0000000..d9f0c71
--- /dev/null
+++ b/src/components/ui/sheet.tsx
@@ -0,0 +1,138 @@
+import * as React from "react";
+import * as SheetPrimitive from "@radix-ui/react-dialog";
+import { cva, type VariantProps } from "class-variance-authority";
+import { X } from "lucide-react";
+
+import { cn } from "../lib/utils";
+
+const Sheet = SheetPrimitive.Root;
+
+const SheetTrigger = SheetPrimitive.Trigger;
+
+const SheetClose = SheetPrimitive.Close;
+
+const SheetPortal = SheetPrimitive.Portal;
+
+const SheetOverlay = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
+
+const sheetVariants = cva(
+ "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
+ {
+ variants: {
+ side: {
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
+ bottom:
+ "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
+ right:
+ "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
+ },
+ },
+ defaultVariants: {
+ side: "right",
+ },
+ },
+);
+
+interface SheetContentProps
+ extends React.ComponentPropsWithoutRef,
+ VariantProps {}
+
+const SheetContent = React.forwardRef<
+ React.ElementRef,
+ SheetContentProps
+>(({ side = "right", className, children, ...props }, ref) => (
+
+
+
+ {children}
+
+
+ Close
+
+
+
+));
+SheetContent.displayName = SheetPrimitive.Content.displayName;
+
+const SheetHeader = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => (
+
+);
+SheetHeader.displayName = "SheetHeader";
+
+const SheetFooter = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => (
+
+);
+SheetFooter.displayName = "SheetFooter";
+
+const SheetTitle = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+SheetTitle.displayName = SheetPrimitive.Title.displayName;
+
+const SheetDescription = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+SheetDescription.displayName = SheetPrimitive.Description.displayName;
+
+export {
+ Sheet,
+ SheetPortal,
+ SheetOverlay,
+ SheetTrigger,
+ SheetClose,
+ SheetContent,
+ SheetHeader,
+ SheetFooter,
+ SheetTitle,
+ SheetDescription,
+};
diff --git a/src/components/ui/skeleton.tsx b/src/components/ui/skeleton.tsx
new file mode 100644
index 0000000..1d26b02
--- /dev/null
+++ b/src/components/ui/skeleton.tsx
@@ -0,0 +1,15 @@
+import { cn } from "~/components/lib/utils"
+
+function Skeleton({
+ className,
+ ...props
+}: React.HTMLAttributes) {
+ return (
+
+ )
+}
+
+export { Skeleton }
diff --git a/src/components/ui/tabs.tsx b/src/components/ui/tabs.tsx
new file mode 100644
index 0000000..a79ced0
--- /dev/null
+++ b/src/components/ui/tabs.tsx
@@ -0,0 +1,53 @@
+import * as React from "react"
+import * as TabsPrimitive from "@radix-ui/react-tabs"
+
+import { cn } from "~/components/lib/utils"
+
+const Tabs = TabsPrimitive.Root
+
+const TabsList = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+TabsList.displayName = TabsPrimitive.List.displayName
+
+const TabsTrigger = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+TabsTrigger.displayName = TabsPrimitive.Trigger.displayName
+
+const TabsContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+TabsContent.displayName = TabsPrimitive.Content.displayName
+
+export { Tabs, TabsList, TabsTrigger, TabsContent }
diff --git a/src/env.mjs b/src/env.mjs
new file mode 100644
index 0000000..08417f7
--- /dev/null
+++ b/src/env.mjs
@@ -0,0 +1,42 @@
+import { createEnv } from "@t3-oss/env-nextjs";
+import { z } from "zod";
+
+export const env = createEnv({
+ /**
+ * Specify your server-side environment variables schema here. This way you can ensure the app
+ * isn't built with invalid env vars.
+ */
+ server: {
+ NODE_ENV: z.enum(["development", "test", "production"]),
+ // WALLET_CONNECT_PROJECT_ID: z.string(),
+ },
+
+ /**
+ * Specify your client-side environment variables schema here. This way you can ensure the app
+ * isn't built with invalid env vars. To expose them to the client, prefix them with
+ * `NEXT_PUBLIC_`.
+ */
+ client: {
+ // NEXT_PUBLIC_CLIENTVAR: z.string(),
+ },
+
+ /**
+ * You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
+ * middlewares) or client-side so we need to destruct manually.
+ */
+ runtimeEnv: {
+ NODE_ENV: process.env.NODE_ENV,
+ // WALLET_CONNECT_PROJECT_ID: process.env.WALLET_CONNECT_PROJECT_ID,
+ // NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
+ },
+ /**
+ * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation.
+ * This is especially useful for Docker builds.
+ */
+ skipValidation: !!process.env.SKIP_ENV_VALIDATION,
+ /**
+ * Makes it so that empty strings are treated as undefined.
+ * `SOME_VAR: z.string()` and `SOME_VAR=''` will throw an error.
+ */
+ emptyStringAsUndefined: true,
+});
diff --git a/src/hooks/wagmi/config/index.ts b/src/hooks/wagmi/config/index.ts
new file mode 100644
index 0000000..1889cc3
--- /dev/null
+++ b/src/hooks/wagmi/config/index.ts
@@ -0,0 +1,3 @@
+import testABI from "./testABI.json";
+
+export { testABI };
diff --git a/src/hooks/wagmi/config/testABI.json b/src/hooks/wagmi/config/testABI.json
new file mode 100644
index 0000000..8c528ca
--- /dev/null
+++ b/src/hooks/wagmi/config/testABI.json
@@ -0,0 +1,328 @@
+[
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collateralToken",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "fundingPayment",
+ "type": "uint256"
+ }
+ ],
+ "name": "FundingPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "trader",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "positionId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "profit",
+ "type": "uint256"
+ }
+ ],
+ "name": "PositionClosed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "trader",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "positionId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ }
+ ],
+ "name": "PositionOpened",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "admin",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "collateralBalances",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collateralToken",
+ "outputs": [
+ {
+ "internalType": "contract IERC20",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeRate",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fundingRate",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "indexPrice",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lastFundingTimestamp",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "trader",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPositions",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "trader",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct PerpetualDEX.Position[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ }
+ ],
+ "name": "openPosition",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "positionId",
+ "type": "uint256"
+ }
+ ],
+ "name": "closePosition",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newPrice",
+ "type": "uint256"
+ }
+ ],
+ "name": "updateIndexPrice",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "payFunding",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
diff --git a/src/hooks/wagmi/index.ts b/src/hooks/wagmi/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/layouts/BaseLayout.tsx b/src/layouts/BaseLayout.tsx
new file mode 100644
index 0000000..68fb240
--- /dev/null
+++ b/src/layouts/BaseLayout.tsx
@@ -0,0 +1,32 @@
+import Head from "next/head";
+import React from "react";
+import { Navbar } from "~/components";
+
+const BaseLayout: React.FC<{
+ children: React.ReactNode;
+}> = ({ children }) => {
+ const bg = "";
+ //"bg-[radial-gradient(ellipse_at_center,_var(--tw-gradient-stops))] from-gray-700 via-gray-900 to-black";
+
+ return (
+ <>
+
+ AllDex
+
+
+
+
+
+
+ {children}
+
+ >
+ );
+};
+
+export default BaseLayout;
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
new file mode 100644
index 0000000..33ccc59
--- /dev/null
+++ b/src/pages/_app.tsx
@@ -0,0 +1,72 @@
+import { type AppType } from "next/app";
+import { Toaster } from "react-hot-toast";
+
+import { api } from "~/utils/api";
+
+// Font (supports weights 400-700)
+import "@fontsource-variable/instrument-sans/wdth.css";
+
+// Styles
+import "~/styles/globals.css";
+import "@rainbow-me/rainbowkit/styles.css";
+
+// Misc
+import {
+ getDefaultWallets,
+ RainbowKitProvider,
+ darkTheme,
+} from "@rainbow-me/rainbowkit";
+import { configureChains, createConfig, WagmiConfig } from "wagmi";
+import { publicProvider } from "wagmi/providers/public";
+import { xdcTestnet } from "viem/chains";
+import BaseLayout from "~/layouts/BaseLayout";
+import { walletConnectProjectId } from "~/utils/constants";
+
+const MyApp: AppType = ({ Component, pageProps }) => {
+ const { chains, publicClient } = configureChains(
+ [xdcTestnet],
+ [publicProvider()],
+ );
+
+ const customRainbowTheme = darkTheme({
+ accentColor: "#0D0A09",
+ accentColorForeground: "#FAFAF9",
+ });
+
+ const { connectors } = getDefaultWallets({
+ appName: "MIAO",
+ chains,
+ projectId: walletConnectProjectId,
+ });
+
+ const wagmiConfig = createConfig({
+ autoConnect: true,
+ connectors,
+ publicClient,
+ });
+
+ return (
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default api.withTRPC(MyApp);
diff --git a/src/pages/api/trpc/[trpc].ts b/src/pages/api/trpc/[trpc].ts
new file mode 100644
index 0000000..af81d92
--- /dev/null
+++ b/src/pages/api/trpc/[trpc].ts
@@ -0,0 +1,19 @@
+import { createNextApiHandler } from "@trpc/server/adapters/next";
+
+import { env } from "~/env.mjs";
+import { appRouter } from "~/server/api/root";
+import { createTRPCContext } from "~/server/api/trpc";
+
+// export API handler
+export default createNextApiHandler({
+ router: appRouter,
+ createContext: createTRPCContext,
+ onError:
+ env.NODE_ENV === "development"
+ ? ({ path, error }) => {
+ console.error(
+ `❌ tRPC failed on ${path ?? ""}: ${error.message}`
+ );
+ }
+ : undefined,
+});
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
new file mode 100644
index 0000000..ffb5127
--- /dev/null
+++ b/src/pages/index.tsx
@@ -0,0 +1,117 @@
+import PairHeader from "~/components/PairHeader";
+import FinancialChart from "~/components/FinancialChart";
+
+export default function Home() {
+ // const hello = api.post.hello.useQuery({ text: "from tRPC" });
+
+ return (
+
+
+ {/* table with bid and asks here */}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "~/components/ui/tabs";
+import { ConnectButton } from "@rainbow-me/rainbowkit";
+
+const TradingUi = () => {
+ const { chains, isLoading: loadingNetwork } = useSwitchNetwork();
+ const {
+ address,
+ isConnecting: accountLoading,
+ isDisconnected: accountDisconnected,
+ } = useAccount();
+
+ const {
+ data: balance,
+ isError: balanceError,
+ isLoading: balanceLoading,
+ } = useBalance({
+ address,
+ });
+
+ const isLoading = accountLoading || balanceLoading;
+
+ if (isLoading || loadingNetwork)
+ return (
+
+
Loading account data
+
+ This can take a few seconds, please wait...
+
+
+
+ );
+
+ if (accountDisconnected)
+ return (
+
+
Account not connected
+
+
+
+
+ );
+
+ if (chains[0] !== xdcTestnet) {
+ return (
+
+ );
+ }
+
+ if (balanceError)
+ return (
+
+
Error loading balance
+
Please try again later
+
+ );
+
+ return (
+
+
+
+
+ Buy
+
+
+ Sell
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+import History from "~/components/History";
+import { defaultPair } from "~/utils/constants";
+import { useAccount, useBalance, useSwitchNetwork } from "wagmi";
+import { Loader2 } from "lucide-react";
+import React from "react";
+import { BuyPanel, SellPanel } from "~/components";
+import { xdcTestnet } from "viem/chains";
diff --git a/src/server/api/root.ts b/src/server/api/root.ts
new file mode 100644
index 0000000..3d629a7
--- /dev/null
+++ b/src/server/api/root.ts
@@ -0,0 +1,14 @@
+import { postRouter } from "~/server/api/routers/post";
+import { createTRPCRouter } from "~/server/api/trpc";
+
+/**
+ * This is the primary router for your server.
+ *
+ * All routers added in /api/routers should be manually added here.
+ */
+export const appRouter = createTRPCRouter({
+ post: postRouter,
+});
+
+// export type definition of API
+export type AppRouter = typeof appRouter;
diff --git a/src/server/api/routers/post.ts b/src/server/api/routers/post.ts
new file mode 100644
index 0000000..1673517
--- /dev/null
+++ b/src/server/api/routers/post.ts
@@ -0,0 +1,32 @@
+import { z } from "zod";
+
+import { createTRPCRouter, publicProcedure } from "~/server/api/trpc";
+
+let post = {
+ id: 1,
+ name: "Hello World",
+};
+
+export const postRouter = createTRPCRouter({
+ hello: publicProcedure
+ .input(z.object({ text: z.string() }))
+ .query(({ input }) => {
+ return {
+ greeting: `Hello ${input.text}`,
+ };
+ }),
+
+ create: publicProcedure
+ .input(z.object({ name: z.string().min(1) }))
+ .mutation(async ({ input }) => {
+ // simulate a slow db call
+ await new Promise((resolve) => setTimeout(resolve, 1000));
+
+ post = { id: post.id + 1, name: input.name };
+ return post;
+ }),
+
+ getLatest: publicProcedure.query(() => {
+ return post;
+ }),
+});
diff --git a/src/server/api/trpc.ts b/src/server/api/trpc.ts
new file mode 100644
index 0000000..3bda296
--- /dev/null
+++ b/src/server/api/trpc.ts
@@ -0,0 +1,92 @@
+/**
+ * YOU PROBABLY DON'T NEED TO EDIT THIS FILE, UNLESS:
+ * 1. You want to modify request context (see Part 1).
+ * 2. You want to create a new middleware or type of procedure (see Part 3).
+ *
+ * TL;DR - This is where all the tRPC server stuff is created and plugged in. The pieces you will
+ * need to use are documented accordingly near the end.
+ */
+
+import { initTRPC } from "@trpc/server";
+import { type CreateNextContextOptions } from "@trpc/server/adapters/next";
+import superjson from "superjson";
+import { ZodError } from "zod";
+
+/**
+ * 1. CONTEXT
+ *
+ * This section defines the "contexts" that are available in the backend API.
+ *
+ * These allow you to access things when processing a request, like the database, the session, etc.
+ */
+
+type CreateContextOptions = Record;
+
+/**
+ * This helper generates the "internals" for a tRPC context. If you need to use it, you can export
+ * it from here.
+ *
+ * Examples of things you may need it for:
+ * - testing, so we don't have to mock Next.js' req/res
+ * - tRPC's `createSSGHelpers`, where we don't have req/res
+ *
+ * @see https://create.t3.gg/en/usage/trpc#-serverapitrpcts
+ */
+const createInnerTRPCContext = (_opts: CreateContextOptions) => {
+ return {};
+};
+
+/**
+ * This is the actual context you will use in your router. It will be used to process every request
+ * that goes through your tRPC endpoint.
+ *
+ * @see https://trpc.io/docs/context
+ */
+export const createTRPCContext = (_opts: CreateNextContextOptions) => {
+ return createInnerTRPCContext({});
+};
+
+/**
+ * 2. INITIALIZATION
+ *
+ * This is where the tRPC API is initialized, connecting the context and transformer. We also parse
+ * ZodErrors so that you get typesafety on the frontend if your procedure fails due to validation
+ * errors on the backend.
+ */
+
+const t = initTRPC.context().create({
+ transformer: superjson,
+ errorFormatter({ shape, error }) {
+ return {
+ ...shape,
+ data: {
+ ...shape.data,
+ zodError:
+ error.cause instanceof ZodError ? error.cause.flatten() : null,
+ },
+ };
+ },
+});
+
+/**
+ * 3. ROUTER & PROCEDURE (THE IMPORTANT BIT)
+ *
+ * These are the pieces you use to build your tRPC API. You should import these a lot in the
+ * "/src/server/api/routers" directory.
+ */
+
+/**
+ * This is how you create new routers and sub-routers in your tRPC API.
+ *
+ * @see https://trpc.io/docs/router
+ */
+export const createTRPCRouter = t.router;
+
+/**
+ * Public (unauthenticated) procedure
+ *
+ * This is the base piece you use to build new queries and mutations on your tRPC API. It does not
+ * guarantee that a user querying is authorized, but you can still access user session data if they
+ * are logged in.
+ */
+export const publicProcedure = t.procedure;
diff --git a/src/stores/financialDataStore.ts b/src/stores/financialDataStore.ts
new file mode 100644
index 0000000..4aef801
--- /dev/null
+++ b/src/stores/financialDataStore.ts
@@ -0,0 +1,37 @@
+import { create } from "zustand";
+import { persist, createJSONStorage } from 'zustand/middleware'
+import { SampleFinancialData } from "~/utils/financialData";
+import type { FinancialData } from "~/types";
+import { currentXDCPrice } from "~/utils/constants";
+
+/*
+Let's generate mock-up data and adjust it to the current XDC/USDT price which is around $0.50.
+*/
+const useFinancialDataStore = create<{ data: FinancialData[]; getLastPrice: () => number; }, [["zustand/persist", unknown]]>(
+ persist(
+ (_set) => {
+ const data = SampleFinancialData.create(120 * 1440, 1);
+ const lastValue = data[data.length-1]?.close ?? 0;
+ const lastInventedPrice = Math.round((currentXDCPrice-Math.random()*0.005)*10000)/10000;
+ const scaleFactor = lastInventedPrice/lastValue;
+ const scaledData = data.map((f) => ({
+ time: f.time,
+ label: f.label,
+ open: Math.round(f.open*scaleFactor*10000)/10000,
+ high: Math.round(f.high*scaleFactor*10000)/10000,
+ low: Math.round(f.low*scaleFactor*10000)/10000,
+ close: Math.round(f.close*scaleFactor*10000)/10000,
+ volume: f.volume,
+ }));
+ return {
+ data: scaledData,
+ getLastPrice: () => lastInventedPrice
+ }
+},
+{
+ name: 'financial-data',
+ storage: createJSONStorage(() => sessionStorage), // (optional) by default, 'localStorage' is used
+
+}));
+
+export default useFinancialDataStore;
diff --git a/src/stores/history.ts b/src/stores/history.ts
new file mode 100644
index 0000000..2d083c8
--- /dev/null
+++ b/src/stores/history.ts
@@ -0,0 +1,15 @@
+import { create } from "zustand";
+
+const useHistoryStore = create<{
+ items: number[];
+ addOneItem: () => void;
+ removeAllItems: () => void;
+}>((set) => ({
+ items: [0],
+ addOneItem: () => {
+ return set((state) => ({ items: [0, ...state.items] }));
+ },
+ removeAllItems: () => set({ items: [] }),
+}));
+
+export default useHistoryStore;
diff --git a/src/stores/positionsStore.ts b/src/stores/positionsStore.ts
new file mode 100644
index 0000000..565d8bb
--- /dev/null
+++ b/src/stores/positionsStore.ts
@@ -0,0 +1,34 @@
+import { create } from "zustand";
+import type { Position } from "~/types";
+
+type positionId = Position["positionId"];
+
+const usePositionsStore = create<{
+ positions: Position[];
+ addPosition: (position: Position) => void;
+ removePosition: (positionId: positionId) => void;
+ setPositionClosing: (positionId: positionId) => void;
+}>((set) => ({
+ positions: [],
+ addPosition: (position) =>
+ set((state) => ({
+ positions: [...state.positions, position],
+ })),
+ removePosition: (positionId) =>
+ set((state) => ({
+ positions: state.positions.filter(
+ (position) => position.positionId !== positionId,
+ ),
+ })),
+ setPositionClosing: (positionId: positionId) =>
+ set((state) => ({
+ positions: state.positions.map((position) => {
+ if (position.positionId === positionId) {
+ return { ...position, closing: true };
+ }
+ return position;
+ }),
+ })),
+}));
+
+export default usePositionsStore;
diff --git a/src/styles/globals.css b/src/styles/globals.css
new file mode 100644
index 0000000..f8f1f7a
--- /dev/null
+++ b/src/styles/globals.css
@@ -0,0 +1,111 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ :root {
+ --background: 0 0% 100%;
+ --foreground: 20 14.3% 4.1%;
+
+ --card: 0 0% 100%;
+ --card-foreground: 20 14.3% 4.1%;
+
+ --popover: 0 0% 100%;
+ --popover-foreground: 20 14.3% 4.1%;
+
+ --primary: 24 9.8% 10%;
+ --primary-foreground: 60 9.1% 97.8%;
+
+ --secondary: 60 4.8% 95.9%;
+ --secondary-foreground: 24 9.8% 10%;
+
+ --muted: 60 4.8% 95.9%;
+ --muted-foreground: 25 5.3% 44.7%;
+
+ --accent: 60 4.8% 95.9%;
+ --accent-foreground: 24 9.8% 10%;
+
+ --destructive: 0 84.2% 60.2%;
+ --destructive-foreground: 60 9.1% 97.8%;
+
+ --border: 20 5.9% 90%;
+ --input: 20 5.9% 90%;
+ --ring: 20 14.3% 4.1%;
+
+ --radius: 0.5rem;
+ }
+
+ .dark {
+ --background: 20 14.3% 4.1%;
+ --foreground: 60 9.1% 97.8%;
+
+ --card: 20 14.3% 4.1%;
+ --card-foreground: 60 9.1% 97.8%;
+
+ --popover: 20 14.3% 4.1%;
+ --popover-foreground: 60 9.1% 97.8%;
+
+ --primary: 60 9.1% 97.8%;
+ --primary-foreground: 24 9.8% 10%;
+
+ --secondary: 12 6.5% 15.1%;
+ --secondary-foreground: 60 9.1% 97.8%;
+
+ --muted: 12 6.5% 15.1%;
+ --muted-foreground: 24 5.4% 63.9%;
+
+ --accent: 12 6.5% 15.1%;
+ --accent-foreground: 60 9.1% 97.8%;
+
+ --destructive: 0 62.8% 30.6%;
+ --destructive-foreground: 60 9.1% 97.8%;
+
+ --border: 12 6.5% 15.1%;
+ --input: 12 6.5% 15.1%;
+ --ring: 24 5.7% 82.9%;
+ }
+}
+
+/* @layer base {
+ * {
+ @apply border-border;
+ }
+ body {
+ @apply bg-background text-foreground;
+ }
+} */
+
+html {
+ --s: 140px; /* control the size */
+
+ --_g: #0000 52%, #170409 /* first color */ 54% 57%, #0000 59%;
+ background:
+ radial-gradient(farthest-side at -33.33% 50%, var(--_g)) 0
+ calc(var(--s) / 2),
+ radial-gradient(farthest-side at 50% 133.33%, var(--_g)) calc(var(--s) / 2)
+ 0,
+ radial-gradient(farthest-side at 133.33% 50%, var(--_g)),
+ radial-gradient(farthest-side at 50% -33.33%, var(--_g)),
+ #67917a; /* second color */
+ background-size:
+ calc(var(--s) / 4.667) var(--s),
+ var(--s) calc(var(--s) / 4.667);
+}
+
+.cssbackground2 {
+ --s: 200px; /* control the size */
+ --c1: #1d1d1d;
+ --c2: #4e4f51;
+ --c3: #3c3c3c;
+
+ background:
+ repeating-conic-gradient(from 30deg, #0000 0 120deg, var(--c3) 0 180deg)
+ calc(0.5 * var(--s)) calc(0.5 * var(--s) * 0.577),
+ repeating-conic-gradient(
+ from 30deg,
+ var(--c1) 0 60deg,
+ var(--c2) 0 120deg,
+ var(--c3) 0 180deg
+ );
+ background-size: var(--s) calc(var(--s) * 0.577);
+}
diff --git a/src/types/index.ts b/src/types/index.ts
new file mode 100644
index 0000000..1621847
--- /dev/null
+++ b/src/types/index.ts
@@ -0,0 +1,43 @@
+export interface Pair {
+ numerator: string;
+ denominator: string;
+};
+
+export interface ExecutedTrade {
+ pair: Pair;
+ hash: string;
+ timestamp: string;
+ side: "long" | "short";
+ pnl: number;
+ size: number;
+ collateral: number;
+ entry: number;
+ liquidation: number;
+};
+
+export type Position = {
+ pair: Pair;
+ closing: boolean;
+ pnl: number;
+ // from chain
+ entryPrice: bigint;
+ positionId: bigint;
+ side: number;
+ size: bigint;
+ trader: `0x${string}`;
+};
+
+export interface FinancialData {
+ time: number;
+ label: string;
+ open: number;
+ high: number;
+ low: number;
+ close: number;
+ volume: number;
+};
+
+export interface D {
+ x: Date;
+ y: number[];
+}
diff --git a/src/utils/PerpetualDEX.json b/src/utils/PerpetualDEX.json
new file mode 100644
index 0000000..2b02f37
--- /dev/null
+++ b/src/utils/PerpetualDEX.json
@@ -0,0 +1,14690 @@
+{
+ "contractName": "PerpetualDEX",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collateralToken",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "fundingPayment",
+ "type": "uint256"
+ }
+ ],
+ "name": "FundingPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "trader",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "positionId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "profit",
+ "type": "uint256"
+ }
+ ],
+ "name": "PositionClosed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "trader",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "positionId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ }
+ ],
+ "name": "PositionOpened",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "admin",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "collateralBalances",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [],
+ "name": "collateralToken",
+ "outputs": [
+ {
+ "internalType": "contract IXRC20",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [],
+ "name": "feeRate",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [],
+ "name": "fundingRate",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [],
+ "name": "indexPrice",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [],
+ "name": "lastFundingTimestamp",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "trader",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function",
+ "constant": true
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "size",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "entryPrice",
+ "type": "uint256"
+ },
+ {
+ "internalType": "enum PerpetualDEX.Side",
+ "name": "side",
+ "type": "uint8"
+ }
+ ],
+ "name": "openPosition",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "positionId",
+ "type": "uint256"
+ }
+ ],
+ "name": "closePosition",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newPrice",
+ "type": "uint256"
+ }
+ ],
+ "name": "updateIndexPrice",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "payFunding",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collateralToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fundingPayment\",\"type\":\"uint256\"}],\"name\":\"FundingPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"entryPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum PerpetualDEX.Side\",\"name\":\"side\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"profit\",\"type\":\"uint256\"}],\"name\":\"PositionClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"entryPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum PerpetualDEX.Side\",\"name\":\"side\",\"type\":\"uint8\"}],\"name\":\"PositionOpened\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"closePosition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"collateralBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateralToken\",\"outputs\":[{\"internalType\":\"contract IXRC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fundingRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFundingTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"entryPrice\",\"type\":\"uint256\"},{\"internalType\":\"enum PerpetualDEX.Side\",\"name\":\"side\",\"type\":\"uint8\"}],\"name\":\"openPosition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"payFunding\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"entryPrice\",\"type\":\"uint256\"},{\"internalType\":\"enum PerpetualDEX.Side\",\"name\":\"side\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"updateIndexPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/PerpectualDex.sol\":\"PerpetualDEX\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/IXRC20.sol\":{\"keccak256\":\"0xd30f2cd85926c09f870b5bb76929907b3215d10acadf7d6c22d72aad75b9e89c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c137b12bf5461011dafebf7f6617cd6dc696313992fb82050a0a6cf9041856b0\",\"dweb:/ipfs/QmPD5ujk4bBEm8u1rhrnfTYwJzTLbmAxcBeF5u2Qixvudw\"]},\"project:/contracts/PerpectualDex.sol\":{\"keccak256\":\"0xbdef744f1a567e97ef8cfbff76baa1e62815ed6eab786850032554c4d02fc444\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec848b07093a2323bb4c070172ba596ccdec9caedee27d0611c65290498b96bd\",\"dweb:/ipfs/QmSbui8eFVJWYbPyXdQyMNP8DEPsc3q9L33Fvnt5Ts2HNa\"]}},\"version\":1}",
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620019213803806200192183398181016040528101906200003791906200014a565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260028190555060006003819055506103e86004819055506101f4600581905550506200017c565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200011282620000e5565b9050919050565b620001248162000105565b81146200013057600080fd5b50565b600081519050620001448162000119565b92915050565b600060208284031215620001635762000162620000e0565b5b6000620001738482850162000133565b91505092915050565b611795806200018c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063978bbdb911610071578063978bbdb91461017b57806399fbab8814610199578063a126d601146101cc578063aaa5a2ad146101e8578063b2016bd4146101f2578063f851a44014610210576100b4565b80630ac02555146100b957806310bace8c146100d557806329bc969d146100f357806341d3c84c146101235780635fbf81cc1461014157806393ca34151461015d575b600080fd5b6100d360048036038101906100ce9190610e93565b61022e565b005b6100dd6102f3565b6040516100ea9190610ecf565b60405180910390f35b61010d60048036038101906101089190610f48565b6102f9565b60405161011a9190610ecf565b60405180910390f35b61012b610311565b6040516101389190610ecf565b60405180910390f35b61015b60048036038101906101569190610f9a565b610317565b005b6101656106ac565b6040516101729190610ecf565b60405180910390f35b6101836106b2565b6040516101909190610ecf565b60405180910390f35b6101b360048036038101906101ae9190610e93565b6106b8565b6040516101c39493929190611073565b60405180910390f35b6101e660048036038101906101e19190610e93565b610725565b005b6101f0610b66565b005b6101fa610ca4565b6040516102079190611117565b60405180910390f35b610218610cca565b6040516102259190611132565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b3906111d0565b60405180910390fd5b806004819055506000600254426102d3919061121f565b905060008111156102ef576102e781610cee565b426002819055505b5050565b60045481565b60076020528060005260406000206000915090505481565b60035481565b6000831161035a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103519061129f565b60405180910390fd5b6000821161039d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039490611331565b60405180910390fd5b600060018111156103b1576103b0610ffc565b5b8160018111156103c4576103c3610ffc565b5b14806103f357506001808111156103de576103dd610ffc565b5b8160018111156103f1576103f0610ffc565b5b145b610432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061139d565b60405180910390fd5b6000670de0b6b3a7640000600454848661044c91906113bd565b61045691906113bd565b610460919061142e565b905080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104db906114ab565b60405180910390fd5b600660405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200184600181111561052c5761052b610ffc565b5b815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360018111156105de576105dd610ffc565b5b0217905550505080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610634919061121f565b925050819055506000600160068054905061064f919061121f565b90503373ffffffffffffffffffffffffffffffffffffffff167f22525261af7a4917e8be47f89149ad7abb0d81058d0a105e9756a4e40bd5b2e88287878760405161069d94939291906114cb565b60405180910390a25050505050565b60025481565b60055481565b600681815481106106c857600080fd5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b600680549050811061076c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107639061155c565b60405180910390fd5b6000600682815481106107825761078161157c565b5b906000526020600020906004020190503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081b9061161d565b60405180910390fd5b60008160010154905060008260020154905060008360030160009054906101000a900460ff169050600061085786610d53565b905060006127106005548361086c91906113bd565b610876919061142e565b905060008183610886919061121f565b9050670de0b6b3a764000060045487876108a091906113bd565b6108aa91906113bd565b6108b4919061142e565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610902919061163d565b9250508190555081600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610979919061163d565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f3c35f9aeba0e938ec1359b8abda46ace45b198167ad7fea0dd1fca374224427489888888866040516109ce959493929190611671565b60405180910390a2600660016006805490506109ea919061121f565b815481106109fb576109fa61157c565b5b906000526020600020906004020160068981548110610a1d57610a1c61157c565b5b90600052602060002090600402016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201556003820160009054906101000a900460ff168160030160006101000a81548160ff02191690836001811115610ade57610add610ffc565b5b02179055509050506006805480610af857610af76116c4565b5b6001900381819060005260206000209060040201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090556003820160006101000a81549060ff0219169055505090555050505050505050565b600060025442610b76919061121f565b905060008111610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb29061173f565b60405180910390fd5b60006201518082600354600680549050610bd591906113bd565b610bdf91906113bd565b610be9919061142e565b905080600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c5b919061163d565b925050819055507f7052e674e5d83ba741a3bc9f3675ddb61e9472cf8470386d1c2a21ed9c0b87fc81604051610c919190610ecf565b60405180910390a1426002819055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6004548162015180670de0b6b3a7640000600454610d0c91906113bd565b670de0b6b3a7640000600454610d2291906113bd565b610d2c919061121f565b610d3691906113bd565b610d40919061142e565b610d4a919061142e565b60038190555050565b60008060068381548110610d6a57610d6961157c565b5b9060005260206000209060040201905060008160010154905060008260020154905060008360030160009054906101000a900460ff1690506000600454905060006001811115610dbd57610dbc610ffc565b5b826001811115610dd057610dcf610ffc565b5b03610e1657670de0b6b3a76400008484610dea91906113bd565b8583610df691906113bd565b610e00919061121f565b610e0a919061142e565b95505050505050610e53565b670de0b6b3a76400008482610e2b91906113bd565b8585610e3791906113bd565b610e41919061121f565b610e4b919061142e565b955050505050505b919050565b600080fd5b6000819050919050565b610e7081610e5d565b8114610e7b57600080fd5b50565b600081359050610e8d81610e67565b92915050565b600060208284031215610ea957610ea8610e58565b5b6000610eb784828501610e7e565b91505092915050565b610ec981610e5d565b82525050565b6000602082019050610ee46000830184610ec0565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f1582610eea565b9050919050565b610f2581610f0a565b8114610f3057600080fd5b50565b600081359050610f4281610f1c565b92915050565b600060208284031215610f5e57610f5d610e58565b5b6000610f6c84828501610f33565b91505092915050565b60028110610f8257600080fd5b50565b600081359050610f9481610f75565b92915050565b600080600060608486031215610fb357610fb2610e58565b5b6000610fc186828701610e7e565b9350506020610fd286828701610e7e565b9250506040610fe386828701610f85565b9150509250925092565b610ff681610f0a565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811061103c5761103b610ffc565b5b50565b600081905061104d8261102b565b919050565b600061105d8261103f565b9050919050565b61106d81611052565b82525050565b60006080820190506110886000830187610fed565b6110956020830186610ec0565b6110a26040830185610ec0565b6110af6060830184611064565b95945050505050565b6000819050919050565b60006110dd6110d86110d384610eea565b6110b8565b610eea565b9050919050565b60006110ef826110c2565b9050919050565b6000611101826110e4565b9050919050565b611111816110f6565b82525050565b600060208201905061112c6000830184611108565b92915050565b60006020820190506111476000830184610fed565b92915050565b600082825260208201905092915050565b7f4f6e6c792061646d696e2063616e2075706461746520696e646578207072696360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ba60218361114d565b91506111c58261115e565b604082019050919050565b600060208201905081810360008301526111e9816111ad565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061122a82610e5d565b915061123583610e5d565b925082820390508181111561124d5761124c6111f0565b5b92915050565b7f53697a65206d7573742062652067726561746572207468616e20300000000000600082015250565b6000611289601b8361114d565b915061129482611253565b602082019050919050565b600060208201905081810360008301526112b88161127c565b9050919050565b7f456e747279207072696365206d7573742062652067726561746572207468616e60008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b600061131b60228361114d565b9150611326826112bf565b604082019050919050565b6000602082019050818103600083015261134a8161130e565b9050919050565b7f496e76616c696420736964650000000000000000000000000000000000000000600082015250565b6000611387600c8361114d565b915061139282611351565b602082019050919050565b600060208201905081810360008301526113b68161137a565b9050919050565b60006113c882610e5d565b91506113d383610e5d565b92508282026113e181610e5d565b915082820484148315176113f8576113f76111f0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061143982610e5d565b915061144483610e5d565b925082611454576114536113ff565b5b828204905092915050565b7f496e73756666696369656e7420636f6c6c61746572616c000000000000000000600082015250565b600061149560178361114d565b91506114a08261145f565b602082019050919050565b600060208201905081810360008301526114c481611488565b9050919050565b60006080820190506114e06000830187610ec0565b6114ed6020830186610ec0565b6114fa6040830185610ec0565b6115076060830184611064565b95945050505050565b7f506f736974696f6e20646f6573206e6f74206578697374000000000000000000600082015250565b600061154660178361114d565b915061155182611510565b602082019050919050565b6000602082019050818103600083015261157581611539565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4f6e6c7920746865206f776e65722063616e20636c6f73652074686520706f7360008201527f6974696f6e000000000000000000000000000000000000000000000000000000602082015250565b600061160760258361114d565b9150611612826115ab565b604082019050919050565b60006020820190508181036000830152611636816115fa565b9050919050565b600061164882610e5d565b915061165383610e5d565b925082820190508082111561166b5761166a6111f0565b5b92915050565b600060a0820190506116866000830188610ec0565b6116936020830187610ec0565b6116a06040830186610ec0565b6116ad6060830185611064565b6116ba6080830184610ec0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e6f742074696d6520666f722066756e64696e67207061796d656e7420796574600082015250565b600061172960208361114d565b9150611734826116f3565b602082019050919050565b600060208201905081810360008301526117588161171c565b905091905056fea264697066735822122099a62993f6597019ce8fb805b97cb23714b75b09d1e9b05bafd43a8d5213967f64736f6c63430008110033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063978bbdb911610071578063978bbdb91461017b57806399fbab8814610199578063a126d601146101cc578063aaa5a2ad146101e8578063b2016bd4146101f2578063f851a44014610210576100b4565b80630ac02555146100b957806310bace8c146100d557806329bc969d146100f357806341d3c84c146101235780635fbf81cc1461014157806393ca34151461015d575b600080fd5b6100d360048036038101906100ce9190610e93565b61022e565b005b6100dd6102f3565b6040516100ea9190610ecf565b60405180910390f35b61010d60048036038101906101089190610f48565b6102f9565b60405161011a9190610ecf565b60405180910390f35b61012b610311565b6040516101389190610ecf565b60405180910390f35b61015b60048036038101906101569190610f9a565b610317565b005b6101656106ac565b6040516101729190610ecf565b60405180910390f35b6101836106b2565b6040516101909190610ecf565b60405180910390f35b6101b360048036038101906101ae9190610e93565b6106b8565b6040516101c39493929190611073565b60405180910390f35b6101e660048036038101906101e19190610e93565b610725565b005b6101f0610b66565b005b6101fa610ca4565b6040516102079190611117565b60405180910390f35b610218610cca565b6040516102259190611132565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b3906111d0565b60405180910390fd5b806004819055506000600254426102d3919061121f565b905060008111156102ef576102e781610cee565b426002819055505b5050565b60045481565b60076020528060005260406000206000915090505481565b60035481565b6000831161035a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103519061129f565b60405180910390fd5b6000821161039d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039490611331565b60405180910390fd5b600060018111156103b1576103b0610ffc565b5b8160018111156103c4576103c3610ffc565b5b14806103f357506001808111156103de576103dd610ffc565b5b8160018111156103f1576103f0610ffc565b5b145b610432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061139d565b60405180910390fd5b6000670de0b6b3a7640000600454848661044c91906113bd565b61045691906113bd565b610460919061142e565b905080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104db906114ab565b60405180910390fd5b600660405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200184600181111561052c5761052b610ffc565b5b815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360018111156105de576105dd610ffc565b5b0217905550505080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610634919061121f565b925050819055506000600160068054905061064f919061121f565b90503373ffffffffffffffffffffffffffffffffffffffff167f22525261af7a4917e8be47f89149ad7abb0d81058d0a105e9756a4e40bd5b2e88287878760405161069d94939291906114cb565b60405180910390a25050505050565b60025481565b60055481565b600681815481106106c857600080fd5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b600680549050811061076c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107639061155c565b60405180910390fd5b6000600682815481106107825761078161157c565b5b906000526020600020906004020190503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081b9061161d565b60405180910390fd5b60008160010154905060008260020154905060008360030160009054906101000a900460ff169050600061085786610d53565b905060006127106005548361086c91906113bd565b610876919061142e565b905060008183610886919061121f565b9050670de0b6b3a764000060045487876108a091906113bd565b6108aa91906113bd565b6108b4919061142e565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610902919061163d565b9250508190555081600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610979919061163d565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f3c35f9aeba0e938ec1359b8abda46ace45b198167ad7fea0dd1fca374224427489888888866040516109ce959493929190611671565b60405180910390a2600660016006805490506109ea919061121f565b815481106109fb576109fa61157c565b5b906000526020600020906004020160068981548110610a1d57610a1c61157c565b5b90600052602060002090600402016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201556003820160009054906101000a900460ff168160030160006101000a81548160ff02191690836001811115610ade57610add610ffc565b5b02179055509050506006805480610af857610af76116c4565b5b6001900381819060005260206000209060040201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090556003820160006101000a81549060ff0219169055505090555050505050505050565b600060025442610b76919061121f565b905060008111610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb29061173f565b60405180910390fd5b60006201518082600354600680549050610bd591906113bd565b610bdf91906113bd565b610be9919061142e565b905080600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c5b919061163d565b925050819055507f7052e674e5d83ba741a3bc9f3675ddb61e9472cf8470386d1c2a21ed9c0b87fc81604051610c919190610ecf565b60405180910390a1426002819055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6004548162015180670de0b6b3a7640000600454610d0c91906113bd565b670de0b6b3a7640000600454610d2291906113bd565b610d2c919061121f565b610d3691906113bd565b610d40919061142e565b610d4a919061142e565b60038190555050565b60008060068381548110610d6a57610d6961157c565b5b9060005260206000209060040201905060008160010154905060008260020154905060008360030160009054906101000a900460ff1690506000600454905060006001811115610dbd57610dbc610ffc565b5b826001811115610dd057610dcf610ffc565b5b03610e1657670de0b6b3a76400008484610dea91906113bd565b8583610df691906113bd565b610e00919061121f565b610e0a919061142e565b95505050505050610e53565b670de0b6b3a76400008482610e2b91906113bd565b8585610e3791906113bd565b610e41919061121f565b610e4b919061142e565b955050505050505b919050565b600080fd5b6000819050919050565b610e7081610e5d565b8114610e7b57600080fd5b50565b600081359050610e8d81610e67565b92915050565b600060208284031215610ea957610ea8610e58565b5b6000610eb784828501610e7e565b91505092915050565b610ec981610e5d565b82525050565b6000602082019050610ee46000830184610ec0565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f1582610eea565b9050919050565b610f2581610f0a565b8114610f3057600080fd5b50565b600081359050610f4281610f1c565b92915050565b600060208284031215610f5e57610f5d610e58565b5b6000610f6c84828501610f33565b91505092915050565b60028110610f8257600080fd5b50565b600081359050610f9481610f75565b92915050565b600080600060608486031215610fb357610fb2610e58565b5b6000610fc186828701610e7e565b9350506020610fd286828701610e7e565b9250506040610fe386828701610f85565b9150509250925092565b610ff681610f0a565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811061103c5761103b610ffc565b5b50565b600081905061104d8261102b565b919050565b600061105d8261103f565b9050919050565b61106d81611052565b82525050565b60006080820190506110886000830187610fed565b6110956020830186610ec0565b6110a26040830185610ec0565b6110af6060830184611064565b95945050505050565b6000819050919050565b60006110dd6110d86110d384610eea565b6110b8565b610eea565b9050919050565b60006110ef826110c2565b9050919050565b6000611101826110e4565b9050919050565b611111816110f6565b82525050565b600060208201905061112c6000830184611108565b92915050565b60006020820190506111476000830184610fed565b92915050565b600082825260208201905092915050565b7f4f6e6c792061646d696e2063616e2075706461746520696e646578207072696360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ba60218361114d565b91506111c58261115e565b604082019050919050565b600060208201905081810360008301526111e9816111ad565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061122a82610e5d565b915061123583610e5d565b925082820390508181111561124d5761124c6111f0565b5b92915050565b7f53697a65206d7573742062652067726561746572207468616e20300000000000600082015250565b6000611289601b8361114d565b915061129482611253565b602082019050919050565b600060208201905081810360008301526112b88161127c565b9050919050565b7f456e747279207072696365206d7573742062652067726561746572207468616e60008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b600061131b60228361114d565b9150611326826112bf565b604082019050919050565b6000602082019050818103600083015261134a8161130e565b9050919050565b7f496e76616c696420736964650000000000000000000000000000000000000000600082015250565b6000611387600c8361114d565b915061139282611351565b602082019050919050565b600060208201905081810360008301526113b68161137a565b9050919050565b60006113c882610e5d565b91506113d383610e5d565b92508282026113e181610e5d565b915082820484148315176113f8576113f76111f0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061143982610e5d565b915061144483610e5d565b925082611454576114536113ff565b5b828204905092915050565b7f496e73756666696369656e7420636f6c6c61746572616c000000000000000000600082015250565b600061149560178361114d565b91506114a08261145f565b602082019050919050565b600060208201905081810360008301526114c481611488565b9050919050565b60006080820190506114e06000830187610ec0565b6114ed6020830186610ec0565b6114fa6040830185610ec0565b6115076060830184611064565b95945050505050565b7f506f736974696f6e20646f6573206e6f74206578697374000000000000000000600082015250565b600061154660178361114d565b915061155182611510565b602082019050919050565b6000602082019050818103600083015261157581611539565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4f6e6c7920746865206f776e65722063616e20636c6f73652074686520706f7360008201527f6974696f6e000000000000000000000000000000000000000000000000000000602082015250565b600061160760258361114d565b9150611612826115ab565b604082019050919050565b60006020820190508181036000830152611636816115fa565b9050919050565b600061164882610e5d565b915061165383610e5d565b925082820190508082111561166b5761166a6111f0565b5b92915050565b600060a0820190506116866000830188610ec0565b6116936020830187610ec0565b6116a06040830186610ec0565b6116ad6060830185611064565b6116ba6080830184610ec0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e6f742074696d6520666f722066756e64696e67207061796d656e7420796574600082015250565b600061172960208361114d565b9150611734826116f3565b602082019050919050565b600060208201905081810360008301526117588161171c565b905091905056fea264697066735822122099a62993f6597019ce8fb805b97cb23714b75b09d1e9b05bafd43a8d5213967f64736f6c63430008110033",
+ "immutableReferences": {},
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:1199:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:2",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:2"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:2",
+ "type": ""
+ }
+ ],
+ "src": "7:75:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:2"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:2"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:2",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:2"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:2",
+ "type": ""
+ }
+ ],
+ "src": "334:126:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:2"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:2",
+ "type": ""
+ }
+ ],
+ "src": "466:96:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:2"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:2"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:2"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:2",
+ "type": ""
+ }
+ ],
+ "src": "568:122:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "759:80:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "769:22:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "784:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "778:5:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "778:13:2"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "769:5:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "827:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "800:26:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "800:33:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "800:33:2"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "737:6:2",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "745:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "753:5:2",
+ "type": ""
+ }
+ ],
+ "src": "696:143:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "922:274:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "968:83:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "970:77:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "970:79:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "970:79:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "943:7:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "952:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "939:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "939:23:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "964:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "935:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "935:32:2"
+ },
+ "nodeType": "YulIf",
+ "src": "932:119:2"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1061:128:2",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1076:15:2",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1090:1:2",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1080:6:2",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1105:74:2",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1151:9:2"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1162:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1147:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1147:22:2"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1171:7:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "1115:31:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1115:64:2"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1105:6:2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "892:9:2",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "903:7:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "915:6:2",
+ "type": ""
+ }
+ ],
+ "src": "845:351:2"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
+ "id": 2,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "deployedGeneratedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:16796:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:2",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:2"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:2",
+ "type": ""
+ }
+ ],
+ "src": "7:75:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:2"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:2"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:32:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:16:2",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "400:5:2"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:2",
+ "type": ""
+ }
+ ],
+ "src": "334:77:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "460:79:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "517:16:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "526:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "529:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "519:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "519:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "519:12:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "483:5:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "508:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "490:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "490:24:2"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "480:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "480:35:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "473:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "473:43:2"
+ },
+ "nodeType": "YulIf",
+ "src": "470:63:2"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "453:5:2",
+ "type": ""
+ }
+ ],
+ "src": "417:122:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "597:87:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "607:29:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "629:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "616:12:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "616:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "607:5:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "672:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "645:26:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "645:33:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "645:33:2"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "575:6:2",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "583:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "591:5:2",
+ "type": ""
+ }
+ ],
+ "src": "545:139:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:263:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "802:83:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "804:77:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "804:79:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "804:79:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "777:7:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "786:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "773:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "773:23:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "798:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "769:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "769:32:2"
+ },
+ "nodeType": "YulIf",
+ "src": "766:119:2"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "895:117:2",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "910:15:2",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "924:1:2",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "914:6:2",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "939:63:2",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "974:9:2"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "985:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "970:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "970:22:2"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "994:7:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "949:20:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "949:53:2"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "939:6:2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "726:9:2",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "737:7:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "749:6:2",
+ "type": ""
+ }
+ ],
+ "src": "690:329:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1090:53:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "1107:3:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1130:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1112:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1112:24:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1100:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1100:37:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1100:37:2"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1078:5:2",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "1085:3:2",
+ "type": ""
+ }
+ ],
+ "src": "1025:118:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1247:124:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1257:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1269:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1280:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1265:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1265:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1257:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1337:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1350:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1361:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1346:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1346:17:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1293:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1293:71:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1293:71:2"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1219:9:2",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1231:6:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1242:4:2",
+ "type": ""
+ }
+ ],
+ "src": "1149:222:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1422:81:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1432:65:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1447:5:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1454:42:2",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1443:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1443:54:2"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1432:7:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1404:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1414:7:2",
+ "type": ""
+ }
+ ],
+ "src": "1377:126:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1554:51:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1564:35:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1593:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1575:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1575:24:2"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1564:7:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1536:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1546:7:2",
+ "type": ""
+ }
+ ],
+ "src": "1509:96:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1654:79:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1711:16:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1720:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1723:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1713:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1713:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1713:12:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1677:5:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1702:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1684:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1684:24:2"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1674:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1674:35:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1667:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1667:43:2"
+ },
+ "nodeType": "YulIf",
+ "src": "1664:63:2"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1647:5:2",
+ "type": ""
+ }
+ ],
+ "src": "1611:122:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1791:87:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1801:29:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1823:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "1810:12:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1810:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1801:5:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1866:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1839:26:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1839:33:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1839:33:2"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1769:6:2",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "1777:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1785:5:2",
+ "type": ""
+ }
+ ],
+ "src": "1739:139:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1950:263:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1996:83:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "1998:77:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1998:79:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1998:79:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1971:7:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1980:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1967:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1967:23:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1992:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "1963:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1963:32:2"
+ },
+ "nodeType": "YulIf",
+ "src": "1960:119:2"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2089:117:2",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2104:15:2",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2118:1:2",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2108:6:2",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2133:63:2",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2168:9:2"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2179:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2164:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2164:22:2"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2188:7:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2143:20:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2143:53:2"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2133:6:2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1920:9:2",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "1931:7:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1943:6:2",
+ "type": ""
+ }
+ ],
+ "src": "1884:329:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2269:56:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2303:16:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2312:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2315:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2305:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2305:12:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2305:12:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2292:5:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2299:1:2",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2289:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2289:12:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2282:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2282:20:2"
+ },
+ "nodeType": "YulIf",
+ "src": "2279:40:2"
+ }
+ ]
+ },
+ "name": "validator_revert_t_enum$_Side_$96",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2262:5:2",
+ "type": ""
+ }
+ ],
+ "src": "2219:106:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2390:94:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2400:29:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2422:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2409:12:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2409:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2400:5:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2472:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_enum$_Side_$96",
+ "nodeType": "YulIdentifier",
+ "src": "2438:33:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2438:40:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2438:40:2"
+ }
+ ]
+ },
+ "name": "abi_decode_t_enum$_Side_$96",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2368:6:2",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2376:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2384:5:2",
+ "type": ""
+ }
+ ],
+ "src": "2331:153:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2597:526:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2643:83:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2645:77:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2645:79:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2645:79:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2618:7:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2627:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2614:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2614:23:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2639:2:2",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2610:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2610:32:2"
+ },
+ "nodeType": "YulIf",
+ "src": "2607:119:2"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2736:117:2",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2751:15:2",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2765:1:2",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2755:6:2",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2780:63:2",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2815:9:2"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2826:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2811:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2811:22:2"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2835:7:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2790:20:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2790:53:2"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2780:6:2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2863:118:2",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2878:16:2",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2892:2:2",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2882:6:2",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2908:63:2",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2943:9:2"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2954:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2939:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2939:22:2"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2963:7:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2918:20:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2918:53:2"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2908:6:2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2991:125:2",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3006:16:2",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3020:2:2",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "3010:6:2",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3036:70:2",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3078:9:2"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3074:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:22:2"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3098:7:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_enum$_Side_$96",
+ "nodeType": "YulIdentifier",
+ "src": "3046:27:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3046:60:2"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "3036:6:2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256t_uint256t_enum$_Side_$96",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2551:9:2",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2562:7:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2574:6:2",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2582:6:2",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "2590:6:2",
+ "type": ""
+ }
+ ],
+ "src": "2490:633:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3194:53:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3211:3:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3234:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "3216:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3216:24:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3204:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3204:37:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3204:37:2"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3182:5:2",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3189:3:2",
+ "type": ""
+ }
+ ],
+ "src": "3129:118:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3281:152:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3298:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3301:77:2",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3291:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3291:88:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3291:88:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3395:1:2",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3398:4:2",
+ "type": "",
+ "value": "0x21"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3388:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3388:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3388:15:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3419:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3422:4:2",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3412:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3412:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3412:15:2"
+ }
+ ]
+ },
+ "name": "panic_error_0x21",
+ "nodeType": "YulFunctionDefinition",
+ "src": "3253:180:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3489:62:2",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3523:22:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x21",
+ "nodeType": "YulIdentifier",
+ "src": "3525:16:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3525:18:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3525:18:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3512:5:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3519:1:2",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3509:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3509:12:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3502:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3502:20:2"
+ },
+ "nodeType": "YulIf",
+ "src": "3499:46:2"
+ }
+ ]
+ },
+ "name": "validator_assert_t_enum$_Side_$96",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3482:5:2",
+ "type": ""
+ }
+ ],
+ "src": "3439:112:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3609:73:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3619:16:2",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3630:5:2"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3619:7:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3670:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "validator_assert_t_enum$_Side_$96",
+ "nodeType": "YulIdentifier",
+ "src": "3636:33:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3636:40:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3636:40:2"
+ }
+ ]
+ },
+ "name": "cleanup_t_enum$_Side_$96",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3591:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3601:7:2",
+ "type": ""
+ }
+ ],
+ "src": "3557:125:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3753:60:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3763:44:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3801:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_enum$_Side_$96",
+ "nodeType": "YulIdentifier",
+ "src": "3776:24:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3776:31:2"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "3763:9:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_enum$_Side_$96_to_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3733:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "3743:9:2",
+ "type": ""
+ }
+ ],
+ "src": "3688:125:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3889:71:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3906:3:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3947:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_enum$_Side_$96_to_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "3911:35:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:42:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3899:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3899:55:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3899:55:2"
+ }
+ ]
+ },
+ "name": "abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3877:5:2",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3884:3:2",
+ "type": ""
+ }
+ ],
+ "src": "3819:141:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4153:376:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4163:27:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4175:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4186:3:2",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4171:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4171:19:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4163:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4244:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4257:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4268:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4253:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4253:17:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4200:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4200:71:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4200:71:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4325:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4338:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4349:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4334:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4334:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4281:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4281:72:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4281:72:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4407:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4420:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4431:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4416:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4416:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4363:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4363:72:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4363:72:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "4494:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4507:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4518:2:2",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4503:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4503:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4445:48:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4445:77:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4445:77:2"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_enum$_Side_$96__to_t_address_t_uint256_t_uint256_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4101:9:2",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "4113:6:2",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "4121:6:2",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "4129:6:2",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4137:6:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4148:4:2",
+ "type": ""
+ }
+ ],
+ "src": "3966:563:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4567:28:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4577:12:2",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4584:5:2"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "4577:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4553:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "4563:3:2",
+ "type": ""
+ }
+ ],
+ "src": "4535:60:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4661:82:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4671:66:2",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4729:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "4711:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4711:24:2"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "4702:8:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4702:34:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "4684:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4684:53:2"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "4671:9:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint160_to_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4641:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "4651:9:2",
+ "type": ""
+ }
+ ],
+ "src": "4601:142:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4809:66:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4819:50:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4863:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint160_to_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "4832:30:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4832:37:2"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "4819:9:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint160_to_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4789:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "4799:9:2",
+ "type": ""
+ }
+ ],
+ "src": "4749:126:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4954:66:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4964:50:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5008:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint160_to_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4977:30:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4977:37:2"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "4964:9:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_contract$_IXRC20_$77_to_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4934:5:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "4944:9:2",
+ "type": ""
+ }
+ ],
+ "src": "4881:139:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5104:79:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5121:3:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5170:5:2"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_contract$_IXRC20_$77_to_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5126:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5126:50:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5114:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5114:63:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5114:63:2"
+ }
+ ]
+ },
+ "name": "abi_encode_t_contract$_IXRC20_$77_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5092:5:2",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5099:3:2",
+ "type": ""
+ }
+ ],
+ "src": "5026:157:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5300:137:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5310:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5322:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5333:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5318:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5318:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "5310:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5403:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5416:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5427:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5412:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5412:17:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_contract$_IXRC20_$77_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "5346:56:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5346:84:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5346:84:2"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_contract$_IXRC20_$77__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5272:9:2",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5284:6:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "5295:4:2",
+ "type": ""
+ }
+ ],
+ "src": "5189:248:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5541:124:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5551:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5563:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5574:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5559:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5559:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "5551:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5631:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5644:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5655:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5640:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5640:17:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "5587:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5587:71:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5587:71:2"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5513:9:2",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5525:6:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "5536:4:2",
+ "type": ""
+ }
+ ],
+ "src": "5443:222:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5767:73:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5784:3:2"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5789:6:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5777:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5777:19:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5777:19:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5805:29:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5824:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5829:4:2",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5820:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5820:14:2"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "5805:11:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5739:3:2",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5744:6:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "5755:11:2",
+ "type": ""
+ }
+ ],
+ "src": "5671:169:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5952:114:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "5974:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5982:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5970:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5970:14:2"
+ },
+ {
+ "hexValue": "4f6e6c792061646d696e2063616e2075706461746520696e6465782070726963",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "5986:34:2",
+ "type": "",
+ "value": "Only admin can update index pric"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5963:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5963:58:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5963:58:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6042:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6050:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6038:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6038:15:2"
+ },
+ {
+ "hexValue": "65",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "6055:3:2",
+ "type": "",
+ "value": "e"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6031:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6031:28:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6031:28:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "5944:6:2",
+ "type": ""
+ }
+ ],
+ "src": "5846:220:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6218:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6228:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6294:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6299:2:2",
+ "type": "",
+ "value": "33"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6235:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6235:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6228:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6400:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259",
+ "nodeType": "YulIdentifier",
+ "src": "6311:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6311:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6311:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6413:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6424:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6429:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6420:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6420:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "6413:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "6206:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "6214:3:2",
+ "type": ""
+ }
+ ],
+ "src": "6072:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6615:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6625:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6637:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6648:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6633:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6633:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6625:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6672:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6683:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6668:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6668:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6691:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6697:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6687:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6687:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6661:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6661:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6661:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6717:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6851:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6725:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6725:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6717:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6595:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6610:4:2",
+ "type": ""
+ }
+ ],
+ "src": "6444:419:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6897:152:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6914:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6917:77:2",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6907:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6907:88:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6907:88:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7011:1:2",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7014:4:2",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7004:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7004:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7004:15:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7035:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7038:4:2",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "7028:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7028:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7028:15:2"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6869:180:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7100:149:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7110:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7133:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7115:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7115:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7110:1:2"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7144:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7167:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7149:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7149:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7144:1:2"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7178:17:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7190:1:2"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7193:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "7186:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7186:9:2"
+ },
+ "variableNames": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "7178:4:2"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7220:22:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "7222:16:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7222:18:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7222:18:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "7211:4:2"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7217:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7208:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7208:11:2"
+ },
+ "nodeType": "YulIf",
+ "src": "7205:37:2"
+ }
+ ]
+ },
+ "name": "checked_sub_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "7086:1:2",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "7089:1:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "diff",
+ "nodeType": "YulTypedName",
+ "src": "7095:4:2",
+ "type": ""
+ }
+ ],
+ "src": "7055:194:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7361:71:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7383:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7391:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7379:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7379:14:2"
+ },
+ {
+ "hexValue": "53697a65206d7573742062652067726561746572207468616e2030",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "7395:29:2",
+ "type": "",
+ "value": "Size must be greater than 0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7372:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7372:53:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7372:53:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "7353:6:2",
+ "type": ""
+ }
+ ],
+ "src": "7255:177:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7584:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7594:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7660:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7665:2:2",
+ "type": "",
+ "value": "27"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "7601:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7601:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7594:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7766:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83",
+ "nodeType": "YulIdentifier",
+ "src": "7677:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7677:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7677:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7779:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7790:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7795:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7786:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7786:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "7779:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "7572:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "7580:3:2",
+ "type": ""
+ }
+ ],
+ "src": "7438:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7981:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7991:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8003:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8014:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7999:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7999:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "7991:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8038:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8049:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8034:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8034:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "8057:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8063:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "8053:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8053:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8027:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8027:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8027:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8083:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "8217:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "8091:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8091:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "8083:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "7961:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "7976:4:2",
+ "type": ""
+ }
+ ],
+ "src": "7810:419:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8341:115:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "8363:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8371:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8359:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8359:14:2"
+ },
+ {
+ "hexValue": "456e747279207072696365206d7573742062652067726561746572207468616e",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "8375:34:2",
+ "type": "",
+ "value": "Entry price must be greater than"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8352:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8352:58:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8352:58:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "8431:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8439:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8427:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8427:15:2"
+ },
+ {
+ "hexValue": "2030",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "8444:4:2",
+ "type": "",
+ "value": " 0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8420:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8420:29:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8420:29:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "8333:6:2",
+ "type": ""
+ }
+ ],
+ "src": "8235:221:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8608:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8618:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "8684:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8689:2:2",
+ "type": "",
+ "value": "34"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "8625:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8625:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "8618:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "8790:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd",
+ "nodeType": "YulIdentifier",
+ "src": "8701:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8701:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8701:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8803:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "8814:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8819:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8810:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8810:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8803:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "8596:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "8604:3:2",
+ "type": ""
+ }
+ ],
+ "src": "8462:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9005:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9015:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9027:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9038:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9023:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9023:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9015:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9062:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9073:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9058:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9058:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9081:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9087:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "9077:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9077:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "9051:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9051:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9051:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9107:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9241:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9115:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9115:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9107:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "8985:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "9000:4:2",
+ "type": ""
+ }
+ ],
+ "src": "8834:419:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9365:56:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "9387:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9395:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9383:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9383:14:2"
+ },
+ {
+ "hexValue": "496e76616c69642073696465",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "9399:14:2",
+ "type": "",
+ "value": "Invalid side"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "9376:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9376:38:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9376:38:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "9357:6:2",
+ "type": ""
+ }
+ ],
+ "src": "9259:162:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9573:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9583:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "9649:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9654:2:2",
+ "type": "",
+ "value": "12"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9590:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9590:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "9583:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "9755:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda",
+ "nodeType": "YulIdentifier",
+ "src": "9666:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9666:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9666:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9768:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "9779:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9784:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9775:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9775:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "9768:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "9561:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "9569:3:2",
+ "type": ""
+ }
+ ],
+ "src": "9427:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9970:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9980:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9992:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10003:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9988:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9988:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9980:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10027:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10038:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10023:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10023:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10046:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10052:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "10042:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10042:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10016:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10016:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10016:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10072:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10206:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10080:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10080:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10072:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "9950:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "9965:4:2",
+ "type": ""
+ }
+ ],
+ "src": "9799:419:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10272:362:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10282:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10305:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10287:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10287:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10282:1:2"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10316:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10339:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10321:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10321:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10316:1:2"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "10350:28:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10373:1:2"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10376:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "10369:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10369:9:2"
+ },
+ "variables": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulTypedName",
+ "src": "10354:11:2",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10387:41:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulIdentifier",
+ "src": "10416:11:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10398:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10398:30:2"
+ },
+ "variableNames": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "10387:7:2"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10605:22:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "10607:16:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10607:18:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10607:18:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10538:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "10531:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10531:9:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10561:1:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "10568:7:2"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10577:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "10564:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10564:15:2"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "10558:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10558:22:2"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "10511:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10511:83:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "10491:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10491:113:2"
+ },
+ "nodeType": "YulIf",
+ "src": "10488:139:2"
+ }
+ ]
+ },
+ "name": "checked_mul_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "10255:1:2",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "10258:1:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "product",
+ "nodeType": "YulTypedName",
+ "src": "10264:7:2",
+ "type": ""
+ }
+ ],
+ "src": "10224:410:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10668:152:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10685:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10688:77:2",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10678:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10678:88:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10678:88:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10782:1:2",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10785:4:2",
+ "type": "",
+ "value": "0x12"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10775:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10775:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10775:15:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10806:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10809:4:2",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "10799:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10799:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10799:15:2"
+ }
+ ]
+ },
+ "name": "panic_error_0x12",
+ "nodeType": "YulFunctionDefinition",
+ "src": "10640:180:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10868:143:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10878:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10901:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10883:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10883:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10878:1:2"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10912:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10935:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10917:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10917:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10912:1:2"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10959:22:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x12",
+ "nodeType": "YulIdentifier",
+ "src": "10961:16:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10961:18:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10961:18:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10956:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "10949:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10949:9:2"
+ },
+ "nodeType": "YulIf",
+ "src": "10946:35:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10991:14:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "11000:1:2"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "11003:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "10996:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10996:9:2"
+ },
+ "variableNames": [
+ {
+ "name": "r",
+ "nodeType": "YulIdentifier",
+ "src": "10991:1:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checked_div_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "10857:1:2",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "10860:1:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "r",
+ "nodeType": "YulTypedName",
+ "src": "10866:1:2",
+ "type": ""
+ }
+ ],
+ "src": "10826:185:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11123:67:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "11145:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11153:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11141:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11141:14:2"
+ },
+ {
+ "hexValue": "496e73756666696369656e7420636f6c6c61746572616c",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "11157:25:2",
+ "type": "",
+ "value": "Insufficient collateral"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "11134:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11134:49:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11134:49:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "11115:6:2",
+ "type": ""
+ }
+ ],
+ "src": "11017:173:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11342:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11352:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "11418:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11423:2:2",
+ "type": "",
+ "value": "23"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "11359:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11359:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "11352:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "11524:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa",
+ "nodeType": "YulIdentifier",
+ "src": "11435:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11435:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11435:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "11537:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "11548:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11553:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11544:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11544:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "11537:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "11330:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "11338:3:2",
+ "type": ""
+ }
+ ],
+ "src": "11196:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11739:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11749:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11761:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11772:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11757:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11757:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "11749:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11796:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11807:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11792:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11792:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "11815:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11821:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "11811:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11811:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "11785:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11785:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11785:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "11841:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "11975:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "11849:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11849:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "11841:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "11719:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "11734:4:2",
+ "type": ""
+ }
+ ],
+ "src": "11568:419:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12180:376:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "12190:27:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12202:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12213:3:2",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12198:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12198:19:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "12190:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "12271:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12284:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12295:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12280:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12280:17:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "12227:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12227:71:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12227:71:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "12352:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12365:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12376:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12361:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12361:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "12308:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12308:72:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12308:72:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "12434:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12447:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12458:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12443:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12443:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "12390:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12390:72:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12390:72:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "12521:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12534:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12545:2:2",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12530:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12530:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "12472:48:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12472:77:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12472:77:2"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_enum$_Side_$96__to_t_uint256_t_uint256_t_uint256_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "12128:9:2",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "12140:6:2",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "12148:6:2",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "12156:6:2",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "12164:6:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "12175:4:2",
+ "type": ""
+ }
+ ],
+ "src": "11993:563:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12668:67:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "12690:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12698:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12686:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12686:14:2"
+ },
+ {
+ "hexValue": "506f736974696f6e20646f6573206e6f74206578697374",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "12702:25:2",
+ "type": "",
+ "value": "Position does not exist"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "12679:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12679:49:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12679:49:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "12660:6:2",
+ "type": ""
+ }
+ ],
+ "src": "12562:173:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12887:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "12897:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "12963:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12968:2:2",
+ "type": "",
+ "value": "23"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "12904:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12904:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "12897:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13069:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c",
+ "nodeType": "YulIdentifier",
+ "src": "12980:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12980:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12980:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13082:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13093:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13098:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13089:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13089:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "13082:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "12875:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "12883:3:2",
+ "type": ""
+ }
+ ],
+ "src": "12741:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13284:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "13294:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "13306:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13317:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13302:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13302:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "13294:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "13341:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13352:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13337:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13337:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "13360:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "13366:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "13356:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13356:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13330:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13330:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13330:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13386:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "13520:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "13394:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13394:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "13386:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "13264:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "13279:4:2",
+ "type": ""
+ }
+ ],
+ "src": "13113:419:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13566:152:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13583:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13586:77:2",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13576:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13576:88:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13576:88:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13680:1:2",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13683:4:2",
+ "type": "",
+ "value": "0x32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13673:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13673:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13673:15:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13704:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13707:4:2",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "13697:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13697:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13697:15:2"
+ }
+ ]
+ },
+ "name": "panic_error_0x32",
+ "nodeType": "YulFunctionDefinition",
+ "src": "13538:180:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13830:118:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "13852:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13860:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13848:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13848:14:2"
+ },
+ {
+ "hexValue": "4f6e6c7920746865206f776e65722063616e20636c6f73652074686520706f73",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "13864:34:2",
+ "type": "",
+ "value": "Only the owner can close the pos"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13841:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13841:58:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13841:58:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "13920:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13928:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13916:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13916:15:2"
+ },
+ {
+ "hexValue": "6974696f6e",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "13933:7:2",
+ "type": "",
+ "value": "ition"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13909:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13909:32:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13909:32:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "13822:6:2",
+ "type": ""
+ }
+ ],
+ "src": "13724:224:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14100:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "14110:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14176:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14181:2:2",
+ "type": "",
+ "value": "37"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "14117:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14117:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14110:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14282:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126",
+ "nodeType": "YulIdentifier",
+ "src": "14193:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14193:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14193:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14295:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14306:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14311:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14302:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14302:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "14295:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "14088:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "14096:3:2",
+ "type": ""
+ }
+ ],
+ "src": "13954:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14497:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "14507:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14519:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14530:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14515:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14515:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14507:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14554:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14565:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14550:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14550:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14573:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14579:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "14569:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14569:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "14543:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14543:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14543:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14599:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14733:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "14607:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14607:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14599:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "14477:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "14492:4:2",
+ "type": ""
+ }
+ ],
+ "src": "14326:419:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14795:147:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "14805:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "14828:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "14810:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14810:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "14805:1:2"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14839:25:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "14862:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "14844:17:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14844:20:2"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "14839:1:2"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14873:16:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "14884:1:2"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "14887:1:2"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14880:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14880:9:2"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "14873:3:2"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14913:22:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "14915:16:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14915:18:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14915:18:2"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "14905:1:2"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "14908:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "14902:2:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14902:10:2"
+ },
+ "nodeType": "YulIf",
+ "src": "14899:36:2"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "14782:1:2",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "14785:1:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "14791:3:2",
+ "type": ""
+ }
+ ],
+ "src": "14751:191:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15163:459:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "15173:27:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15185:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15196:3:2",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15181:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15181:19:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "15173:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "15254:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15267:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15278:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15263:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15263:17:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15210:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15210:71:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15210:71:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "15335:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15348:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15359:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15344:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15344:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15291:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15291:72:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15291:72:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "15417:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15430:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15441:2:2",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15426:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15426:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15373:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15373:72:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15373:72:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "15504:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15517:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15528:2:2",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15513:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15513:18:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15455:48:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15455:77:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15455:77:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value4",
+ "nodeType": "YulIdentifier",
+ "src": "15586:6:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15599:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15610:3:2",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15595:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15595:19:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15542:43:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15542:73:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15542:73:2"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_enum$_Side_$96_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "15103:9:2",
+ "type": ""
+ },
+ {
+ "name": "value4",
+ "nodeType": "YulTypedName",
+ "src": "15115:6:2",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "15123:6:2",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "15131:6:2",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "15139:6:2",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "15147:6:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "15158:4:2",
+ "type": ""
+ }
+ ],
+ "src": "14948:674:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15656:152:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15673:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15676:77:2",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "15666:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15666:88:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15666:88:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15770:1:2",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15773:4:2",
+ "type": "",
+ "value": "0x31"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "15763:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15763:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15763:15:2"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15794:1:2",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15797:4:2",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "15787:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15787:15:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15787:15:2"
+ }
+ ]
+ },
+ "name": "panic_error_0x31",
+ "nodeType": "YulFunctionDefinition",
+ "src": "15628:180:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15920:76:2",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "15942:6:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15950:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15938:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15938:14:2"
+ },
+ {
+ "hexValue": "4e6f742074696d6520666f722066756e64696e67207061796d656e7420796574",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "15954:34:2",
+ "type": "",
+ "value": "Not time for funding payment yet"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "15931:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15931:58:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15931:58:2"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "15912:6:2",
+ "type": ""
+ }
+ ],
+ "src": "15814:182:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16148:220:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "16158:74:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16224:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16229:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "16165:58:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16165:67:2"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16158:3:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16330:3:2"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d",
+ "nodeType": "YulIdentifier",
+ "src": "16241:88:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16241:93:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16241:93:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "16343:19:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16354:3:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16359:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16350:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16350:12:2"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "16343:3:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "16136:3:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "16144:3:2",
+ "type": ""
+ }
+ ],
+ "src": "16002:366:2"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16545:248:2",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "16555:26:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16567:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16578:2:2",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16563:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16563:18:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "16555:4:2"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16602:9:2"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16613:1:2",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16598:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16598:17:2"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "16621:4:2"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16627:9:2"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "16617:3:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16617:20:2"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "16591:6:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16591:47:2"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16591:47:2"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "16647:139:2",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "16781:4:2"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "16655:124:2"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16655:131:2"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "16647:4:2"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "16525:9:2",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "16540:4:2",
+ "type": ""
+ }
+ ],
+ "src": "16374:419:2"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_enum$_Side_$96(value) {\n if iszero(lt(value, 2)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_Side_$96(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Side_$96(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_enum$_Side_$96(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_enum$_Side_$96(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_Side_$96(value) {\n if iszero(lt(value, 2)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_Side_$96(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Side_$96(value)\n }\n\n function convert_t_enum$_Side_$96_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Side_$96(value)\n }\n\n function abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Side_$96_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_enum$_Side_$96__to_t_address_t_uint256_t_uint256_t_uint8__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack(value3, add(headStart, 96))\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IXRC20_$77_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IXRC20_$77_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IXRC20_$77_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IXRC20_$77__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IXRC20_$77_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259(memPtr) {\n\n mstore(add(memPtr, 0), \"Only admin can update index pric\")\n\n mstore(add(memPtr, 32), \"e\")\n\n }\n\n function abi_encode_t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83(memPtr) {\n\n mstore(add(memPtr, 0), \"Size must be greater than 0\")\n\n }\n\n function abi_encode_t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd(memPtr) {\n\n mstore(add(memPtr, 0), \"Entry price must be greater than\")\n\n mstore(add(memPtr, 32), \" 0\")\n\n }\n\n function abi_encode_t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda(memPtr) {\n\n mstore(add(memPtr, 0), \"Invalid side\")\n\n }\n\n function abi_encode_t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n store_literal_in_memory_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient collateral\")\n\n }\n\n function abi_encode_t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_enum$_Side_$96__to_t_uint256_t_uint256_t_uint256_t_uint8__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack(value3, add(headStart, 96))\n\n }\n\n function store_literal_in_memory_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c(memPtr) {\n\n mstore(add(memPtr, 0), \"Position does not exist\")\n\n }\n\n function abi_encode_t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126(memPtr) {\n\n mstore(add(memPtr, 0), \"Only the owner can close the pos\")\n\n mstore(add(memPtr, 32), \"ition\")\n\n }\n\n function abi_encode_t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_enum$_Side_$96_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_enum$_Side_$96_to_t_uint8_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d(memPtr) {\n\n mstore(add(memPtr, 0), \"Not time for funding payment yet\")\n\n }\n\n function abi_encode_t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
+ "id": 2,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "sourceMap": "87:4826:1:-:0;;;915:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;972:10;964:5;;:18;;;;;;;;;;;;;;;;;;1018:16;993:15;;:42;;;;;;;;;;;;;;;;;;1069:15;1046:20;:38;;;;1109:1;1095:11;:15;;;;1134:4;1121:10;:17;;;;1182:3;1172:7;:13;;;;915:290;87:4826;;88:117:2;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;87:4826:1:-;;;;;;;",
+ "deployedSourceMap": "87:4826:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3663:381;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;254:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;555:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;221:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1213:881;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;179:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;286:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;521:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;2102:979;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4493:417;;;:::i;:::-;;143:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;116:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3663:381;3749:5;;;;;;;;;;3735:19;;:10;:19;;;3727:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3816:8;3803:10;:21;;;;3835:19;3875:20;;3857:15;:38;;;;:::i;:::-;3835:60;;3924:1;3910:11;:15;3906:131;;;3942:30;3960:11;3942:17;:30::i;:::-;4010:15;3987:20;:38;;;;3906:131;3716:328;3663:381;:::o;254:25::-;;;;:::o;555:53::-;;;;;;;;;;;;;;;;;:::o;221:26::-;;;;:::o;1213:881::-;1315:1;1308:4;:8;1300:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;1380:1;1367:10;:14;1359:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;1447:9;1439:17;;;;;;;;:::i;:::-;;:4;:17;;;;;;;;:::i;:::-;;;:39;;;;1468:10;1460:18;;;;;;;;:::i;:::-;;:4;:18;;;;;;;;:::i;:::-;;;1439:39;1431:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1550:26;1614:4;1601:10;;1587;1580:4;:17;;;;:::i;:::-;1579:32;;;;:::i;:::-;:39;;;;:::i;:::-;1550:68;;1673:18;1639;:30;1658:10;1639:30;;;;;;;;;;;;;;;;:52;;1631:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;1732:9;1747:141;;;;;;;;1779:10;1747:141;;;;;;1810:4;1747:141;;;;1841:10;1747:141;;;;1872:4;1747:141;;;;;;;;:::i;:::-;;;;;1732:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1936:18;1902;:30;1921:10;1902:30;;;;;;;;;;;;;;;;:52;;;;;;;:::i;:::-;;;;;;;;1967:18;2007:1;1988:9;:16;;;;:20;;;;:::i;:::-;1967:41;;2039:10;2024:62;;;2051:10;2063:4;2069:10;2081:4;2024:62;;;;;;;;;:::i;:::-;;;;;;;;1289:805;;1213:881;;;:::o;179:35::-;;;;:::o;286:22::-;;;;:::o;521:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2102:979::-;2186:9;:16;;;;2173:10;:29;2165:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2243:25;2271:9;2281:10;2271:21;;;;;;;;:::i;:::-;;;;;;;;;;;;2243:49;;2330:10;2311:29;;:8;:15;;;;;;;;;;;;:29;;;2303:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;2395:12;2410:8;:13;;;2395:28;;2434:18;2455:8;:19;;;2434:40;;2485:9;2497:8;:13;;;;;;;;;;;;2485:25;;2523:11;2537:34;2560:10;2537:22;:34::i;:::-;2523:48;;2584:11;2616:3;2605:7;;2599:3;:13;;;;:::i;:::-;2598:21;;;;:::i;:::-;2584:35;;2630:14;2653:3;2647;:9;;;;:::i;:::-;2630:26;;2738:4;2724:10;;2717:4;2704:10;:17;;;;:::i;:::-;:30;;;;:::i;:::-;2703:39;;;;:::i;:::-;2669:18;:30;2688:10;2669:30;;;;;;;;;;;;;;;;:73;;;;;;;:::i;:::-;;;;;;;;2782:3;2753:18;:25;2772:5;;;;;;;;;;;2753:25;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;2818:10;2803:70;;;2830:10;2842:4;2848:10;2860:4;2866:6;2803:70;;;;;;;;;;:::i;:::-;;;;;;;;3016:9;3045:1;3026:9;:16;;;;:20;;;;:::i;:::-;3016:31;;;;;;;;:::i;:::-;;;;;;;;;;;;2992:9;3002:10;2992:21;;;;;;;;:::i;:::-;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3058:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:927;;;;;;;2102:979;:::o;4493:417::-;4535:19;4575:20;;4557:15;:38;;;;:::i;:::-;4535:60;;4628:1;4614:11;:15;4606:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;4677:22;4751:5;4736:11;4722;;4703:9;:16;;;;:30;;;;:::i;:::-;:44;;;;:::i;:::-;4702:54;;;;:::i;:::-;4677:79;;4796:14;4767:18;:25;4786:5;;;;;;;;;;;4767:25;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;4826:27;4838:14;4826:27;;;;;;:::i;:::-;;;;;;;;4887:15;4864:20;:38;;;;4524:386;;4493:417::o;143:29::-;;;;;;;;;;;;;:::o;116:20::-;;;;;;;;;;;;:::o;4052:433::-;4467:10;;4453:11;4445:5;4437:4;4424:10;;:17;;;;:::i;:::-;4417:4;4404:10;;:17;;;;:::i;:::-;:37;;;;:::i;:::-;4403:47;;;;:::i;:::-;:61;;;;:::i;:::-;:74;;;;:::i;:::-;4389:11;:88;;;;4052:433;:::o;3089:566::-;3164:7;3184:25;3212:9;3222:10;3212:21;;;;;;;;:::i;:::-;;;;;;;;;;;;3184:49;;3244:12;3259:8;:13;;;3244:28;;3283:18;3304:8;:19;;;3283:40;;3334:9;3346:8;:13;;;;;;;;;;;;3334:25;;3372:20;3395:10;;3372:33;;3467:9;3459:17;;;;;;;;:::i;:::-;;:4;:17;;;;;;;;:::i;:::-;;;3455:193;;3544:4;3536;3523:10;:17;;;;:::i;:::-;3516:4;3501:12;:19;;;;:::i;:::-;:39;;;;:::i;:::-;3500:48;;;;:::i;:::-;3493:55;;;;;;;;;3455:193;3632:4;3624;3609:12;:19;;;;:::i;:::-;3602:4;3589:10;:17;;;;:::i;:::-;:39;;;;:::i;:::-;3588:48;;;;:::i;:::-;3581:55;;;;;;;3089:566;;;;:::o;88:117:2:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:96::-;1546:7;1575:24;1593:5;1575:24;:::i;:::-;1564:35;;1509:96;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:106::-;2299:1;2292:5;2289:12;2279:40;;2315:1;2312;2305:12;2279:40;2219:106;:::o;2331:153::-;2384:5;2422:6;2409:20;2400:29;;2438:40;2472:5;2438:40;:::i;:::-;2331:153;;;;:::o;2490:633::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:60;3098:7;3089:6;3078:9;3074:22;3046:60;:::i;:::-;3036:70;;2991:125;2490:633;;;;;:::o;3129:118::-;3216:24;3234:5;3216:24;:::i;:::-;3211:3;3204:37;3129:118;;:::o;3253:180::-;3301:77;3298:1;3291:88;3398:4;3395:1;3388:15;3422:4;3419:1;3412:15;3439:112;3519:1;3512:5;3509:12;3499:46;;3525:18;;:::i;:::-;3499:46;3439:112;:::o;3557:125::-;3601:7;3630:5;3619:16;;3636:40;3670:5;3636:40;:::i;:::-;3557:125;;;:::o;3688:::-;3743:9;3776:31;3801:5;3776:31;:::i;:::-;3763:44;;3688:125;;;:::o;3819:141::-;3911:42;3947:5;3911:42;:::i;:::-;3906:3;3899:55;3819:141;;:::o;3966:563::-;4148:4;4186:3;4175:9;4171:19;4163:27;;4200:71;4268:1;4257:9;4253:17;4244:6;4200:71;:::i;:::-;4281:72;4349:2;4338:9;4334:18;4325:6;4281:72;:::i;:::-;4363;4431:2;4420:9;4416:18;4407:6;4363:72;:::i;:::-;4445:77;4518:2;4507:9;4503:18;4494:6;4445:77;:::i;:::-;3966:563;;;;;;;:::o;4535:60::-;4563:3;4584:5;4577:12;;4535:60;;;:::o;4601:142::-;4651:9;4684:53;4702:34;4711:24;4729:5;4711:24;:::i;:::-;4702:34;:::i;:::-;4684:53;:::i;:::-;4671:66;;4601:142;;;:::o;4749:126::-;4799:9;4832:37;4863:5;4832:37;:::i;:::-;4819:50;;4749:126;;;:::o;4881:139::-;4944:9;4977:37;5008:5;4977:37;:::i;:::-;4964:50;;4881:139;;;:::o;5026:157::-;5126:50;5170:5;5126:50;:::i;:::-;5121:3;5114:63;5026:157;;:::o;5189:248::-;5295:4;5333:2;5322:9;5318:18;5310:26;;5346:84;5427:1;5416:9;5412:17;5403:6;5346:84;:::i;:::-;5189:248;;;;:::o;5443:222::-;5536:4;5574:2;5563:9;5559:18;5551:26;;5587:71;5655:1;5644:9;5640:17;5631:6;5587:71;:::i;:::-;5443:222;;;;:::o;5671:169::-;5755:11;5789:6;5784:3;5777:19;5829:4;5824:3;5820:14;5805:29;;5671:169;;;;:::o;5846:220::-;5986:34;5982:1;5974:6;5970:14;5963:58;6055:3;6050:2;6042:6;6038:15;6031:28;5846:220;:::o;6072:366::-;6214:3;6235:67;6299:2;6294:3;6235:67;:::i;:::-;6228:74;;6311:93;6400:3;6311:93;:::i;:::-;6429:2;6424:3;6420:12;6413:19;;6072:366;;;:::o;6444:419::-;6610:4;6648:2;6637:9;6633:18;6625:26;;6697:9;6691:4;6687:20;6683:1;6672:9;6668:17;6661:47;6725:131;6851:4;6725:131;:::i;:::-;6717:139;;6444:419;;;:::o;6869:180::-;6917:77;6914:1;6907:88;7014:4;7011:1;7004:15;7038:4;7035:1;7028:15;7055:194;7095:4;7115:20;7133:1;7115:20;:::i;:::-;7110:25;;7149:20;7167:1;7149:20;:::i;:::-;7144:25;;7193:1;7190;7186:9;7178:17;;7217:1;7211:4;7208:11;7205:37;;;7222:18;;:::i;:::-;7205:37;7055:194;;;;:::o;7255:177::-;7395:29;7391:1;7383:6;7379:14;7372:53;7255:177;:::o;7438:366::-;7580:3;7601:67;7665:2;7660:3;7601:67;:::i;:::-;7594:74;;7677:93;7766:3;7677:93;:::i;:::-;7795:2;7790:3;7786:12;7779:19;;7438:366;;;:::o;7810:419::-;7976:4;8014:2;8003:9;7999:18;7991:26;;8063:9;8057:4;8053:20;8049:1;8038:9;8034:17;8027:47;8091:131;8217:4;8091:131;:::i;:::-;8083:139;;7810:419;;;:::o;8235:221::-;8375:34;8371:1;8363:6;8359:14;8352:58;8444:4;8439:2;8431:6;8427:15;8420:29;8235:221;:::o;8462:366::-;8604:3;8625:67;8689:2;8684:3;8625:67;:::i;:::-;8618:74;;8701:93;8790:3;8701:93;:::i;:::-;8819:2;8814:3;8810:12;8803:19;;8462:366;;;:::o;8834:419::-;9000:4;9038:2;9027:9;9023:18;9015:26;;9087:9;9081:4;9077:20;9073:1;9062:9;9058:17;9051:47;9115:131;9241:4;9115:131;:::i;:::-;9107:139;;8834:419;;;:::o;9259:162::-;9399:14;9395:1;9387:6;9383:14;9376:38;9259:162;:::o;9427:366::-;9569:3;9590:67;9654:2;9649:3;9590:67;:::i;:::-;9583:74;;9666:93;9755:3;9666:93;:::i;:::-;9784:2;9779:3;9775:12;9768:19;;9427:366;;;:::o;9799:419::-;9965:4;10003:2;9992:9;9988:18;9980:26;;10052:9;10046:4;10042:20;10038:1;10027:9;10023:17;10016:47;10080:131;10206:4;10080:131;:::i;:::-;10072:139;;9799:419;;;:::o;10224:410::-;10264:7;10287:20;10305:1;10287:20;:::i;:::-;10282:25;;10321:20;10339:1;10321:20;:::i;:::-;10316:25;;10376:1;10373;10369:9;10398:30;10416:11;10398:30;:::i;:::-;10387:41;;10577:1;10568:7;10564:15;10561:1;10558:22;10538:1;10531:9;10511:83;10488:139;;10607:18;;:::i;:::-;10488:139;10272:362;10224:410;;;;:::o;10640:180::-;10688:77;10685:1;10678:88;10785:4;10782:1;10775:15;10809:4;10806:1;10799:15;10826:185;10866:1;10883:20;10901:1;10883:20;:::i;:::-;10878:25;;10917:20;10935:1;10917:20;:::i;:::-;10912:25;;10956:1;10946:35;;10961:18;;:::i;:::-;10946:35;11003:1;11000;10996:9;10991:14;;10826:185;;;;:::o;11017:173::-;11157:25;11153:1;11145:6;11141:14;11134:49;11017:173;:::o;11196:366::-;11338:3;11359:67;11423:2;11418:3;11359:67;:::i;:::-;11352:74;;11435:93;11524:3;11435:93;:::i;:::-;11553:2;11548:3;11544:12;11537:19;;11196:366;;;:::o;11568:419::-;11734:4;11772:2;11761:9;11757:18;11749:26;;11821:9;11815:4;11811:20;11807:1;11796:9;11792:17;11785:47;11849:131;11975:4;11849:131;:::i;:::-;11841:139;;11568:419;;;:::o;11993:563::-;12175:4;12213:3;12202:9;12198:19;12190:27;;12227:71;12295:1;12284:9;12280:17;12271:6;12227:71;:::i;:::-;12308:72;12376:2;12365:9;12361:18;12352:6;12308:72;:::i;:::-;12390;12458:2;12447:9;12443:18;12434:6;12390:72;:::i;:::-;12472:77;12545:2;12534:9;12530:18;12521:6;12472:77;:::i;:::-;11993:563;;;;;;;:::o;12562:173::-;12702:25;12698:1;12690:6;12686:14;12679:49;12562:173;:::o;12741:366::-;12883:3;12904:67;12968:2;12963:3;12904:67;:::i;:::-;12897:74;;12980:93;13069:3;12980:93;:::i;:::-;13098:2;13093:3;13089:12;13082:19;;12741:366;;;:::o;13113:419::-;13279:4;13317:2;13306:9;13302:18;13294:26;;13366:9;13360:4;13356:20;13352:1;13341:9;13337:17;13330:47;13394:131;13520:4;13394:131;:::i;:::-;13386:139;;13113:419;;;:::o;13538:180::-;13586:77;13583:1;13576:88;13683:4;13680:1;13673:15;13707:4;13704:1;13697:15;13724:224;13864:34;13860:1;13852:6;13848:14;13841:58;13933:7;13928:2;13920:6;13916:15;13909:32;13724:224;:::o;13954:366::-;14096:3;14117:67;14181:2;14176:3;14117:67;:::i;:::-;14110:74;;14193:93;14282:3;14193:93;:::i;:::-;14311:2;14306:3;14302:12;14295:19;;13954:366;;;:::o;14326:419::-;14492:4;14530:2;14519:9;14515:18;14507:26;;14579:9;14573:4;14569:20;14565:1;14554:9;14550:17;14543:47;14607:131;14733:4;14607:131;:::i;:::-;14599:139;;14326:419;;;:::o;14751:191::-;14791:3;14810:20;14828:1;14810:20;:::i;:::-;14805:25;;14844:20;14862:1;14844:20;:::i;:::-;14839:25;;14887:1;14884;14880:9;14873:16;;14908:3;14905:1;14902:10;14899:36;;;14915:18;;:::i;:::-;14899:36;14751:191;;;;:::o;14948:674::-;15158:4;15196:3;15185:9;15181:19;15173:27;;15210:71;15278:1;15267:9;15263:17;15254:6;15210:71;:::i;:::-;15291:72;15359:2;15348:9;15344:18;15335:6;15291:72;:::i;:::-;15373;15441:2;15430:9;15426:18;15417:6;15373:72;:::i;:::-;15455:77;15528:2;15517:9;15513:18;15504:6;15455:77;:::i;:::-;15542:73;15610:3;15599:9;15595:19;15586:6;15542:73;:::i;:::-;14948:674;;;;;;;;:::o;15628:180::-;15676:77;15673:1;15666:88;15773:4;15770:1;15763:15;15797:4;15794:1;15787:15;15814:182;15954:34;15950:1;15942:6;15938:14;15931:58;15814:182;:::o;16002:366::-;16144:3;16165:67;16229:2;16224:3;16165:67;:::i;:::-;16158:74;;16241:93;16330:3;16241:93;:::i;:::-;16359:2;16354:3;16350:12;16343:19;;16002:366;;;:::o;16374:419::-;16540:4;16578:2;16567:9;16563:18;16555:26;;16627:9;16621:4;16617:20;16613:1;16602:9;16598:17;16591:47;16655:131;16781:4;16655:131;:::i;:::-;16647:139;;16374:419;;;:::o",
+ "source": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.17;\r\n\r\nimport \"./IXRC20.sol\";\r\n\r\ncontract PerpetualDEX {\r\n address public admin;\r\n IXRC20 public collateralToken;\r\n uint256 public lastFundingTimestamp;\r\n uint256 public fundingRate;\r\n uint256 public indexPrice;\r\n uint256 public feeRate; // Trading fee rate, e.g., 0.005 for 0.5%\r\n\r\n enum Side { LONG, SHORT }\r\n\r\n struct Position {\r\n address trader;\r\n uint256 size;\r\n uint256 entryPrice;\r\n Side side;\r\n }\r\n\r\n Position[] public positions;\r\n mapping(address => uint256) public collateralBalances;\r\n\r\n event PositionOpened(address indexed trader, uint256 positionId, uint256 size, uint256 entryPrice, Side side);\r\n event PositionClosed(address indexed trader, uint256 positionId, uint256 size, uint256 entryPrice, Side side, uint256 profit);\r\n event FundingPaid(uint256 fundingPayment);\r\n\r\n constructor(address _collateralToken) {\r\n admin = msg.sender;\r\n collateralToken = IXRC20(_collateralToken);\r\n lastFundingTimestamp = block.timestamp;\r\n fundingRate = 0;\r\n indexPrice = 1000; // Initial index price\r\n feeRate = 500; // 0.5% fee\r\n }\r\n\r\n function openPosition(uint256 size, uint256 entryPrice, Side side) external {\r\n require(size > 0, \"Size must be greater than 0\");\r\n require(entryPrice > 0, \"Entry price must be greater than 0\");\r\n require(side == Side.LONG || side == Side.SHORT, \"Invalid side\");\r\n\r\n // Calculate collateral required\r\n uint256 collateralRequired = (size * entryPrice) * indexPrice / 1e18;\r\n\r\n require(collateralBalances[msg.sender] >= collateralRequired, \"Insufficient collateral\");\r\n\r\n positions.push(Position({\r\n trader: msg.sender,\r\n size: size,\r\n entryPrice: entryPrice,\r\n side: side\r\n }));\r\n\r\n collateralBalances[msg.sender] -= collateralRequired;\r\n\r\n uint256 positionId = positions.length - 1;\r\n emit PositionOpened(msg.sender, positionId, size, entryPrice, side);\r\n }\r\n\r\n function closePosition(uint256 positionId) external {\r\n require(positionId < positions.length, \"Position does not exist\");\r\n\r\n Position storage position = positions[positionId];\r\n require(position.trader == msg.sender, \"Only the owner can close the position\");\r\n\r\n uint256 size = position.size;\r\n uint256 entryPrice = position.entryPrice;\r\n Side side = position.side;\r\n\r\n uint256 pnl = calculateProfitAndLoss(positionId);\r\n\r\n uint256 fee = (pnl * feeRate) / 1e4;\r\n uint256 profit = pnl - fee;\r\n\r\n collateralBalances[msg.sender] += (entryPrice * size * indexPrice) / 1e18;\r\n collateralBalances[admin] += fee;\r\n\r\n emit PositionClosed(msg.sender, positionId, size, entryPrice, side, profit);\r\n\r\n // Remove the closed position by moving the last position to this index and truncating the array\r\n positions[positionId] = positions[positions.length - 1];\r\n positions.pop();\r\n }\r\n\r\n function calculateProfitAndLoss(uint256 positionId) internal view returns (uint256) {\r\n Position storage position = positions[positionId];\r\n uint256 size = position.size;\r\n uint256 entryPrice = position.entryPrice;\r\n Side side = position.side;\r\n\r\n uint256 currentPrice = indexPrice; // Replace with a real price source.\r\n\r\n if (side == Side.LONG) {\r\n return (currentPrice * size - entryPrice * size) / 1e18;\r\n } else {\r\n return (entryPrice * size - currentPrice * size) / 1e18;\r\n }\r\n }\r\n\r\n function updateIndexPrice(uint256 newPrice) external {\r\n require(msg.sender == admin, \"Only admin can update index price\");\r\n indexPrice = newPrice;\r\n uint256 timeElapsed = block.timestamp - lastFundingTimestamp;\r\n if (timeElapsed > 0) {\r\n updateFundingRate(timeElapsed);\r\n lastFundingTimestamp = block.timestamp;\r\n }\r\n }\r\n\r\n function updateFundingRate(uint256 timeElapsed) internal {\r\n // Implement a mechanism to calculate and update the funding rate based on timeElapsed.\r\n // This is a placeholder for educational purposes.\r\n // Formula: fundingRate = (indexPrice - previousIndexPrice) / previousIndexPrice * 86400 / timeElapsed\r\n fundingRate = (indexPrice * 1e18 - indexPrice * 1e18) * 86400 / timeElapsed / indexPrice;\r\n }\r\n\r\n function payFunding() external {\r\n uint256 timeElapsed = block.timestamp - lastFundingTimestamp;\r\n require(timeElapsed > 0, \"Not time for funding payment yet\");\r\n uint256 fundingPayment = (positions.length * fundingRate * timeElapsed) / 86400;\r\n collateralBalances[admin] += fundingPayment;\r\n emit FundingPaid(fundingPayment);\r\n lastFundingTimestamp = block.timestamp;\r\n }\r\n}",
+ "sourcePath": "C:\\development\\ebc\\blockchain-contracts\\contracts\\PerpectualDex.sol",
+ "ast": {
+ "absolutePath": "project:/contracts/PerpectualDex.sol",
+ "exportedSymbols": {
+ "IXRC20": [
+ 77
+ ],
+ "PerpetualDEX": [
+ 559
+ ]
+ },
+ "id": 560,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 79,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".17"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:1"
+ },
+ {
+ "absolutePath": "project:/contracts/IXRC20.sol",
+ "file": "./IXRC20.sol",
+ "id": 80,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 560,
+ "sourceUnit": 78,
+ "src": "61:22:1",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PerpetualDEX",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 559,
+ "linearizedBaseContracts": [
+ 559
+ ],
+ "name": "PerpetualDEX",
+ "nameLocation": "96:12:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "functionSelector": "f851a440",
+ "id": 82,
+ "mutability": "mutable",
+ "name": "admin",
+ "nameLocation": "131:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "116:20:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 81,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "116:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "functionSelector": "b2016bd4",
+ "id": 85,
+ "mutability": "mutable",
+ "name": "collateralToken",
+ "nameLocation": "157:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "143:29:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IXRC20_$77",
+ "typeString": "contract IXRC20"
+ },
+ "typeName": {
+ "id": 84,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 83,
+ "name": "IXRC20",
+ "nameLocations": [
+ "143:6:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 77,
+ "src": "143:6:1"
+ },
+ "referencedDeclaration": 77,
+ "src": "143:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IXRC20_$77",
+ "typeString": "contract IXRC20"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "functionSelector": "93ca3415",
+ "id": 87,
+ "mutability": "mutable",
+ "name": "lastFundingTimestamp",
+ "nameLocation": "194:20:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "179:35:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 86,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "179:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "functionSelector": "41d3c84c",
+ "id": 89,
+ "mutability": "mutable",
+ "name": "fundingRate",
+ "nameLocation": "236:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "221:26:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 88,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "221:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "functionSelector": "10bace8c",
+ "id": 91,
+ "mutability": "mutable",
+ "name": "indexPrice",
+ "nameLocation": "269:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "254:25:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 90,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "254:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "functionSelector": "978bbdb9",
+ "id": 93,
+ "mutability": "mutable",
+ "name": "feeRate",
+ "nameLocation": "301:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "286:22:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 92,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "286:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "PerpetualDEX.Side",
+ "id": 96,
+ "members": [
+ {
+ "id": 94,
+ "name": "LONG",
+ "nameLocation": "371:4:1",
+ "nodeType": "EnumValue",
+ "src": "371:4:1"
+ },
+ {
+ "id": 95,
+ "name": "SHORT",
+ "nameLocation": "377:5:1",
+ "nodeType": "EnumValue",
+ "src": "377:5:1"
+ }
+ ],
+ "name": "Side",
+ "nameLocation": "364:4:1",
+ "nodeType": "EnumDefinition",
+ "src": "359:25:1"
+ },
+ {
+ "canonicalName": "PerpetualDEX.Position",
+ "id": 106,
+ "members": [
+ {
+ "constant": false,
+ "id": 98,
+ "mutability": "mutable",
+ "name": "trader",
+ "nameLocation": "427:6:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 106,
+ "src": "419:14:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 97,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "419:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 100,
+ "mutability": "mutable",
+ "name": "size",
+ "nameLocation": "452:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 106,
+ "src": "444:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 99,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "444:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 102,
+ "mutability": "mutable",
+ "name": "entryPrice",
+ "nameLocation": "475:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 106,
+ "src": "467:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 101,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "467:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 105,
+ "mutability": "mutable",
+ "name": "side",
+ "nameLocation": "501:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 106,
+ "src": "496:9:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "typeName": {
+ "id": 104,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 103,
+ "name": "Side",
+ "nameLocations": [
+ "496:4:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 96,
+ "src": "496:4:1"
+ },
+ "referencedDeclaration": 96,
+ "src": "496:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Position",
+ "nameLocation": "399:8:1",
+ "nodeType": "StructDefinition",
+ "scope": 559,
+ "src": "392:121:1",
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "functionSelector": "99fbab88",
+ "id": 110,
+ "mutability": "mutable",
+ "name": "positions",
+ "nameLocation": "539:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "521:27:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 108,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 107,
+ "name": "Position",
+ "nameLocations": [
+ "521:8:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 106,
+ "src": "521:8:1"
+ },
+ "referencedDeclaration": 106,
+ "src": "521:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position"
+ }
+ },
+ "id": 109,
+ "nodeType": "ArrayTypeName",
+ "src": "521:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position[]"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "functionSelector": "29bc969d",
+ "id": 114,
+ "mutability": "mutable",
+ "name": "collateralBalances",
+ "nameLocation": "590:18:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 559,
+ "src": "555:53:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "typeName": {
+ "id": 113,
+ "keyType": {
+ "id": 111,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "563:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "555:27:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueType": {
+ "id": 112,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "574:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "22525261af7a4917e8be47f89149ad7abb0d81058d0a105e9756a4e40bd5b2e8",
+ "id": 127,
+ "name": "PositionOpened",
+ "nameLocation": "623:14:1",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 126,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 116,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "trader",
+ "nameLocation": "654:6:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 127,
+ "src": "638:22:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 115,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "638:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 118,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "positionId",
+ "nameLocation": "670:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 127,
+ "src": "662:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 117,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "662:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 120,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "size",
+ "nameLocation": "690:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 127,
+ "src": "682:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 119,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "682:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 122,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "entryPrice",
+ "nameLocation": "704:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 127,
+ "src": "696:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 121,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "696:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 125,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "side",
+ "nameLocation": "721:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 127,
+ "src": "716:9:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "typeName": {
+ "id": 124,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 123,
+ "name": "Side",
+ "nameLocations": [
+ "716:4:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 96,
+ "src": "716:4:1"
+ },
+ "referencedDeclaration": 96,
+ "src": "716:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "637:89:1"
+ },
+ "src": "617:110:1"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "3c35f9aeba0e938ec1359b8abda46ace45b198167ad7fea0dd1fca3742244274",
+ "id": 142,
+ "name": "PositionClosed",
+ "nameLocation": "739:14:1",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 141,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 129,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "trader",
+ "nameLocation": "770:6:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 142,
+ "src": "754:22:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 128,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "754:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 131,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "positionId",
+ "nameLocation": "786:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 142,
+ "src": "778:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 130,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "778:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 133,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "size",
+ "nameLocation": "806:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 142,
+ "src": "798:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "798:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 135,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "entryPrice",
+ "nameLocation": "820:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 142,
+ "src": "812:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 134,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "812:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 138,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "side",
+ "nameLocation": "837:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 142,
+ "src": "832:9:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "typeName": {
+ "id": 137,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 136,
+ "name": "Side",
+ "nameLocations": [
+ "832:4:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 96,
+ "src": "832:4:1"
+ },
+ "referencedDeclaration": 96,
+ "src": "832:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 140,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "profit",
+ "nameLocation": "851:6:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 142,
+ "src": "843:14:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 139,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "843:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "753:105:1"
+ },
+ "src": "733:126:1"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "7052e674e5d83ba741a3bc9f3675ddb61e9472cf8470386d1c2a21ed9c0b87fc",
+ "id": 146,
+ "name": "FundingPaid",
+ "nameLocation": "871:11:1",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 145,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 144,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "fundingPayment",
+ "nameLocation": "891:14:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 146,
+ "src": "883:22:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 143,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "883:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "882:24:1"
+ },
+ "src": "865:42:1"
+ },
+ {
+ "body": {
+ "id": 179,
+ "nodeType": "Block",
+ "src": "953:252:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 154,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 151,
+ "name": "admin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 82,
+ "src": "964:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 152,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "972:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 153,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "976:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "972:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "964:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 155,
+ "nodeType": "ExpressionStatement",
+ "src": "964:18:1"
+ },
+ {
+ "expression": {
+ "id": 160,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 156,
+ "name": "collateralToken",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 85,
+ "src": "993:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IXRC20_$77",
+ "typeString": "contract IXRC20"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 158,
+ "name": "_collateralToken",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 148,
+ "src": "1018:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 157,
+ "name": "IXRC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 77,
+ "src": "1011:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IXRC20_$77_$",
+ "typeString": "type(contract IXRC20)"
+ }
+ },
+ "id": 159,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1011:24:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IXRC20_$77",
+ "typeString": "contract IXRC20"
+ }
+ },
+ "src": "993:42:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IXRC20_$77",
+ "typeString": "contract IXRC20"
+ }
+ },
+ "id": 161,
+ "nodeType": "ExpressionStatement",
+ "src": "993:42:1"
+ },
+ {
+ "expression": {
+ "id": 165,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 162,
+ "name": "lastFundingTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 87,
+ "src": "1046:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 163,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967292,
+ "src": "1069:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 164,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1075:9:1",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "1069:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1046:38:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 166,
+ "nodeType": "ExpressionStatement",
+ "src": "1046:38:1"
+ },
+ {
+ "expression": {
+ "id": 169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 167,
+ "name": "fundingRate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 89,
+ "src": "1095:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "30",
+ "id": 168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1109:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1095:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 170,
+ "nodeType": "ExpressionStatement",
+ "src": "1095:15:1"
+ },
+ {
+ "expression": {
+ "id": 173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 171,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "1121:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "31303030",
+ "id": 172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1134:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ "value": "1000"
+ },
+ "src": "1121:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 174,
+ "nodeType": "ExpressionStatement",
+ "src": "1121:17:1"
+ },
+ {
+ "expression": {
+ "id": 177,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 175,
+ "name": "feeRate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 93,
+ "src": "1172:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "353030",
+ "id": 176,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1182:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_500_by_1",
+ "typeString": "int_const 500"
+ },
+ "value": "500"
+ },
+ "src": "1172:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 178,
+ "nodeType": "ExpressionStatement",
+ "src": "1172:13:1"
+ }
+ ]
+ },
+ "id": 180,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 149,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 148,
+ "mutability": "mutable",
+ "name": "_collateralToken",
+ "nameLocation": "935:16:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 180,
+ "src": "927:24:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 147,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "927:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "926:26:1"
+ },
+ "returnParameters": {
+ "id": 150,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "953:0:1"
+ },
+ "scope": 559,
+ "src": "915:290:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 273,
+ "nodeType": "Block",
+ "src": "1289:805:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 193,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 191,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 182,
+ "src": "1308:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 192,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1315:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1308:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "53697a65206d7573742062652067726561746572207468616e2030",
+ "id": 194,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1318:29:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83",
+ "typeString": "literal_string \"Size must be greater than 0\""
+ },
+ "value": "Size must be greater than 0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_c45c9481c4731fb9f06ca008ff46a4ecae0c3aba43e491c104f41a189b798d83",
+ "typeString": "literal_string \"Size must be greater than 0\""
+ }
+ ],
+ "id": 190,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "1300:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 195,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1300:48:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 196,
+ "nodeType": "ExpressionStatement",
+ "src": "1300:48:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 200,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 198,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 184,
+ "src": "1367:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 199,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1380:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1367:14:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "456e747279207072696365206d7573742062652067726561746572207468616e2030",
+ "id": 201,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1383:36:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd",
+ "typeString": "literal_string \"Entry price must be greater than 0\""
+ },
+ "value": "Entry price must be greater than 0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_66e82f5abd8b28ce176992cda2c45c1976c27f5e9a24220f8a799c54da0ab8dd",
+ "typeString": "literal_string \"Entry price must be greater than 0\""
+ }
+ ],
+ "id": 197,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "1359:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 202,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1359:61:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 203,
+ "nodeType": "ExpressionStatement",
+ "src": "1359:61:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 213,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "id": 208,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 205,
+ "name": "side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 187,
+ "src": "1439:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 206,
+ "name": "Side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 96,
+ "src": "1447:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_Side_$96_$",
+ "typeString": "type(enum PerpetualDEX.Side)"
+ }
+ },
+ "id": 207,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1452:4:1",
+ "memberName": "LONG",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 94,
+ "src": "1447:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "src": "1439:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "id": 212,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 209,
+ "name": "side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 187,
+ "src": "1460:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 210,
+ "name": "Side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 96,
+ "src": "1468:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_Side_$96_$",
+ "typeString": "type(enum PerpetualDEX.Side)"
+ }
+ },
+ "id": 211,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1473:5:1",
+ "memberName": "SHORT",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 95,
+ "src": "1468:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "src": "1460:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "1439:39:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "496e76616c69642073696465",
+ "id": 214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1480:14:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda",
+ "typeString": "literal_string \"Invalid side\""
+ },
+ "value": "Invalid side"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_928564e8be5d3bf86a65990cd3a02bbae772cd5f231962b4c92229e7addd0cda",
+ "typeString": "literal_string \"Invalid side\""
+ }
+ ],
+ "id": 204,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "1431:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1431:64:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 216,
+ "nodeType": "ExpressionStatement",
+ "src": "1431:64:1"
+ },
+ {
+ "assignments": [
+ 218
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 218,
+ "mutability": "mutable",
+ "name": "collateralRequired",
+ "nameLocation": "1558:18:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 273,
+ "src": "1550:26:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 217,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1550:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 227,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 226,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 221,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 219,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 182,
+ "src": "1580:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 220,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 184,
+ "src": "1587:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1580:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 222,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1579:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 223,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "1601:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1579:32:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "31653138",
+ "id": 225,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1614:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000000000000000000_by_1",
+ "typeString": "int_const 1000000000000000000"
+ },
+ "value": "1e18"
+ },
+ "src": "1579:39:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1550:68:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 234,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "id": 229,
+ "name": "collateralBalances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 114,
+ "src": "1639:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 232,
+ "indexExpression": {
+ "expression": {
+ "id": 230,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "1658:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1662:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "1658:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1639:30:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "id": 233,
+ "name": "collateralRequired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 218,
+ "src": "1673:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1639:52:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "496e73756666696369656e7420636f6c6c61746572616c",
+ "id": 235,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1693:25:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa",
+ "typeString": "literal_string \"Insufficient collateral\""
+ },
+ "value": "Insufficient collateral"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_c9a6548b8b08f3e884692ff4b4c5cb58e1633771e97667c355d207e48aa0a8aa",
+ "typeString": "literal_string \"Insufficient collateral\""
+ }
+ ],
+ "id": 228,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "1631:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 236,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1631:88:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 237,
+ "nodeType": "ExpressionStatement",
+ "src": "1631:88:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 242,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "1779:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1783:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "1779:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 244,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 182,
+ "src": "1810:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 245,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 184,
+ "src": "1841:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 246,
+ "name": "side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 187,
+ "src": "1872:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ ],
+ "id": 241,
+ "name": "Position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 106,
+ "src": "1747:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Position_$106_storage_ptr_$",
+ "typeString": "type(struct PerpetualDEX.Position storage pointer)"
+ }
+ },
+ "id": 247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [
+ "1771:6:1",
+ "1804:4:1",
+ "1829:10:1",
+ "1866:4:1"
+ ],
+ "names": [
+ "trader",
+ "size",
+ "entryPrice",
+ "side"
+ ],
+ "nodeType": "FunctionCall",
+ "src": "1747:141:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_memory_ptr",
+ "typeString": "struct PerpetualDEX.Position memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Position_$106_memory_ptr",
+ "typeString": "struct PerpetualDEX.Position memory"
+ }
+ ],
+ "expression": {
+ "id": 238,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "1732:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 240,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1742:4:1",
+ "memberName": "push",
+ "nodeType": "MemberAccess",
+ "src": "1732:14:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Position_$106_storage_$dyn_storage_ptr_$_t_struct$_Position_$106_storage_$returns$__$bound_to$_t_array$_t_struct$_Position_$106_storage_$dyn_storage_ptr_$",
+ "typeString": "function (struct PerpetualDEX.Position storage ref[] storage pointer,struct PerpetualDEX.Position storage ref)"
+ }
+ },
+ "id": 248,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1732:157:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 249,
+ "nodeType": "ExpressionStatement",
+ "src": "1732:157:1"
+ },
+ {
+ "expression": {
+ "id": 255,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 250,
+ "name": "collateralBalances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 114,
+ "src": "1902:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 253,
+ "indexExpression": {
+ "expression": {
+ "id": 251,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "1921:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1925:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "1921:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "1902:30:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "id": 254,
+ "name": "collateralRequired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 218,
+ "src": "1936:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1902:52:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 256,
+ "nodeType": "ExpressionStatement",
+ "src": "1902:52:1"
+ },
+ {
+ "assignments": [
+ 258
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 258,
+ "mutability": "mutable",
+ "name": "positionId",
+ "nameLocation": "1975:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 273,
+ "src": "1967:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 257,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1967:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 263,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 262,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 259,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "1988:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1998:6:1",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "1988:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2007:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "1988:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1967:41:1"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 265,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "2039:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 266,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2043:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "2039:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 267,
+ "name": "positionId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 258,
+ "src": "2051:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 268,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 182,
+ "src": "2063:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 269,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 184,
+ "src": "2069:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 270,
+ "name": "side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 187,
+ "src": "2081:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ ],
+ "id": 264,
+ "name": "PositionOpened",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 127,
+ "src": "2024:14:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Side_$96_$returns$__$",
+ "typeString": "function (address,uint256,uint256,uint256,enum PerpetualDEX.Side)"
+ }
+ },
+ "id": 271,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2024:62:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 272,
+ "nodeType": "EmitStatement",
+ "src": "2019:67:1"
+ }
+ ]
+ },
+ "functionSelector": "5fbf81cc",
+ "id": 274,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "openPosition",
+ "nameLocation": "1222:12:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 188,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 182,
+ "mutability": "mutable",
+ "name": "size",
+ "nameLocation": "1243:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 274,
+ "src": "1235:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 181,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1235:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 184,
+ "mutability": "mutable",
+ "name": "entryPrice",
+ "nameLocation": "1257:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 274,
+ "src": "1249:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 183,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1249:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 187,
+ "mutability": "mutable",
+ "name": "side",
+ "nameLocation": "1274:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 274,
+ "src": "1269:9:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "typeName": {
+ "id": 186,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 185,
+ "name": "Side",
+ "nameLocations": [
+ "1269:4:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 96,
+ "src": "1269:4:1"
+ },
+ "referencedDeclaration": 96,
+ "src": "1269:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1234:45:1"
+ },
+ "returnParameters": {
+ "id": 189,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1289:0:1"
+ },
+ "scope": 559,
+ "src": "1213:881:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 386,
+ "nodeType": "Block",
+ "src": "2154:927:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 283,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 280,
+ "name": "positionId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 276,
+ "src": "2173:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "expression": {
+ "id": 281,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "2186:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 282,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2196:6:1",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "2186:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2173:29:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "506f736974696f6e20646f6573206e6f74206578697374",
+ "id": 284,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2204:25:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c",
+ "typeString": "literal_string \"Position does not exist\""
+ },
+ "value": "Position does not exist"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_87a8dc6d9db12a6ceec797b2f42e4efa66f9795fe22979847f8a86f8173d3f1c",
+ "typeString": "literal_string \"Position does not exist\""
+ }
+ ],
+ "id": 279,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "2165:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 285,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2165:65:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 286,
+ "nodeType": "ExpressionStatement",
+ "src": "2165:65:1"
+ },
+ {
+ "assignments": [
+ 289
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 289,
+ "mutability": "mutable",
+ "name": "position",
+ "nameLocation": "2260:8:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 386,
+ "src": "2243:25:1",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position"
+ },
+ "typeName": {
+ "id": 288,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 287,
+ "name": "Position",
+ "nameLocations": [
+ "2243:8:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 106,
+ "src": "2243:8:1"
+ },
+ "referencedDeclaration": 106,
+ "src": "2243:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 293,
+ "initialValue": {
+ "baseExpression": {
+ "id": 290,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "2271:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 292,
+ "indexExpression": {
+ "id": 291,
+ "name": "positionId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 276,
+ "src": "2281:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "2271:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2243:49:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 295,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 289,
+ "src": "2311:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position storage pointer"
+ }
+ },
+ "id": 296,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2320:6:1",
+ "memberName": "trader",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 98,
+ "src": "2311:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 297,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "2330:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 298,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2334:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "2330:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "2311:29:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4f6e6c7920746865206f776e65722063616e20636c6f73652074686520706f736974696f6e",
+ "id": 300,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2342:39:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126",
+ "typeString": "literal_string \"Only the owner can close the position\""
+ },
+ "value": "Only the owner can close the position"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_e4db7875c3f42bcd89cdac9a091239355daf65c88ad090edcc38987803126126",
+ "typeString": "literal_string \"Only the owner can close the position\""
+ }
+ ],
+ "id": 294,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "2303:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 301,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2303:79:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 302,
+ "nodeType": "ExpressionStatement",
+ "src": "2303:79:1"
+ },
+ {
+ "assignments": [
+ 304
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 304,
+ "mutability": "mutable",
+ "name": "size",
+ "nameLocation": "2403:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 386,
+ "src": "2395:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 303,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2395:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 307,
+ "initialValue": {
+ "expression": {
+ "id": 305,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 289,
+ "src": "2410:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position storage pointer"
+ }
+ },
+ "id": 306,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2419:4:1",
+ "memberName": "size",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 100,
+ "src": "2410:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2395:28:1"
+ },
+ {
+ "assignments": [
+ 309
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 309,
+ "mutability": "mutable",
+ "name": "entryPrice",
+ "nameLocation": "2442:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 386,
+ "src": "2434:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 308,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2434:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 312,
+ "initialValue": {
+ "expression": {
+ "id": 310,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 289,
+ "src": "2455:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position storage pointer"
+ }
+ },
+ "id": 311,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2464:10:1",
+ "memberName": "entryPrice",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 102,
+ "src": "2455:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2434:40:1"
+ },
+ {
+ "assignments": [
+ 315
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 315,
+ "mutability": "mutable",
+ "name": "side",
+ "nameLocation": "2490:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 386,
+ "src": "2485:9:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "typeName": {
+ "id": 314,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 313,
+ "name": "Side",
+ "nameLocations": [
+ "2485:4:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 96,
+ "src": "2485:4:1"
+ },
+ "referencedDeclaration": 96,
+ "src": "2485:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 318,
+ "initialValue": {
+ "expression": {
+ "id": 316,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 289,
+ "src": "2497:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position storage pointer"
+ }
+ },
+ "id": 317,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2506:4:1",
+ "memberName": "side",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 105,
+ "src": "2497:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2485:25:1"
+ },
+ {
+ "assignments": [
+ 320
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 320,
+ "mutability": "mutable",
+ "name": "pnl",
+ "nameLocation": "2531:3:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 386,
+ "src": "2523:11:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 319,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2523:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 324,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 322,
+ "name": "positionId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 276,
+ "src": "2560:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 321,
+ "name": "calculateProfitAndLoss",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 451,
+ "src": "2537:22:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) view returns (uint256)"
+ }
+ },
+ "id": 323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2537:34:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2523:48:1"
+ },
+ {
+ "assignments": [
+ 326
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 326,
+ "mutability": "mutable",
+ "name": "fee",
+ "nameLocation": "2592:3:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 386,
+ "src": "2584:11:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 325,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2584:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 333,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 332,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 327,
+ "name": "pnl",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 320,
+ "src": "2599:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 328,
+ "name": "feeRate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 93,
+ "src": "2605:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2599:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 330,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2598:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "316534",
+ "id": 331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2616:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10000_by_1",
+ "typeString": "int_const 10000"
+ },
+ "value": "1e4"
+ },
+ "src": "2598:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2584:35:1"
+ },
+ {
+ "assignments": [
+ 335
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 335,
+ "mutability": "mutable",
+ "name": "profit",
+ "nameLocation": "2638:6:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 386,
+ "src": "2630:14:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 334,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2630:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 339,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 336,
+ "name": "pnl",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 320,
+ "src": "2647:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 337,
+ "name": "fee",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 326,
+ "src": "2653:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2647:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2630:26:1"
+ },
+ {
+ "expression": {
+ "id": 352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 340,
+ "name": "collateralBalances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 114,
+ "src": "2669:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 343,
+ "indexExpression": {
+ "expression": {
+ "id": 341,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "2688:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 342,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2692:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "2688:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2669:30:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 351,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 348,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 346,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 344,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "2704:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 345,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 304,
+ "src": "2717:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2704:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 347,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "2724:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2704:30:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 349,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2703:32:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "31653138",
+ "id": 350,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2738:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000000000000000000_by_1",
+ "typeString": "int_const 1000000000000000000"
+ },
+ "value": "1e18"
+ },
+ "src": "2703:39:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2669:73:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 353,
+ "nodeType": "ExpressionStatement",
+ "src": "2669:73:1"
+ },
+ {
+ "expression": {
+ "id": 358,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 354,
+ "name": "collateralBalances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 114,
+ "src": "2753:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 356,
+ "indexExpression": {
+ "id": 355,
+ "name": "admin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 82,
+ "src": "2772:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2753:25:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 357,
+ "name": "fee",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 326,
+ "src": "2782:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2753:32:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 359,
+ "nodeType": "ExpressionStatement",
+ "src": "2753:32:1"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 361,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "2818:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2822:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "2818:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 363,
+ "name": "positionId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 276,
+ "src": "2830:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 364,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 304,
+ "src": "2842:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 365,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "2848:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 366,
+ "name": "side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 315,
+ "src": "2860:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ {
+ "id": 367,
+ "name": "profit",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 335,
+ "src": "2866:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 360,
+ "name": "PositionClosed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 142,
+ "src": "2803:14:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Side_$96_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,uint256,uint256,enum PerpetualDEX.Side,uint256)"
+ }
+ },
+ "id": 368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2803:70:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 369,
+ "nodeType": "EmitStatement",
+ "src": "2798:75:1"
+ },
+ {
+ "expression": {
+ "id": 379,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 370,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "2992:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 372,
+ "indexExpression": {
+ "id": 371,
+ "name": "positionId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 276,
+ "src": "3002:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2992:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "baseExpression": {
+ "id": 373,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "3016:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 378,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 377,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 374,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "3026:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 375,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3036:6:1",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "3026:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 376,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3045:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "3026:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3016:31:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref"
+ }
+ },
+ "src": "2992:55:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref"
+ }
+ },
+ "id": 380,
+ "nodeType": "ExpressionStatement",
+ "src": "2992:55:1"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 381,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "3058:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3068:3:1",
+ "memberName": "pop",
+ "nodeType": "MemberAccess",
+ "src": "3058:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_struct$_Position_$106_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_Position_$106_storage_$dyn_storage_ptr_$",
+ "typeString": "function (struct PerpetualDEX.Position storage ref[] storage pointer)"
+ }
+ },
+ "id": 384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3058:15:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 385,
+ "nodeType": "ExpressionStatement",
+ "src": "3058:15:1"
+ }
+ ]
+ },
+ "functionSelector": "a126d601",
+ "id": 387,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "closePosition",
+ "nameLocation": "2111:13:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 277,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 276,
+ "mutability": "mutable",
+ "name": "positionId",
+ "nameLocation": "2133:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 387,
+ "src": "2125:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 275,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2125:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2124:20:1"
+ },
+ "returnParameters": {
+ "id": 278,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2154:0:1"
+ },
+ "scope": 559,
+ "src": "2102:979:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 450,
+ "nodeType": "Block",
+ "src": "3173:482:1",
+ "statements": [
+ {
+ "assignments": [
+ 396
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 396,
+ "mutability": "mutable",
+ "name": "position",
+ "nameLocation": "3201:8:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 450,
+ "src": "3184:25:1",
+ "stateVariable": false,
+ "storageLocation": "storage",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position"
+ },
+ "typeName": {
+ "id": 395,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 394,
+ "name": "Position",
+ "nameLocations": [
+ "3184:8:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 106,
+ "src": "3184:8:1"
+ },
+ "referencedDeclaration": 106,
+ "src": "3184:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 400,
+ "initialValue": {
+ "baseExpression": {
+ "id": 397,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "3212:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 399,
+ "indexExpression": {
+ "id": 398,
+ "name": "positionId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 389,
+ "src": "3222:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3212:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3184:49:1"
+ },
+ {
+ "assignments": [
+ 402
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 402,
+ "mutability": "mutable",
+ "name": "size",
+ "nameLocation": "3252:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 450,
+ "src": "3244:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 401,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3244:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 405,
+ "initialValue": {
+ "expression": {
+ "id": 403,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 396,
+ "src": "3259:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position storage pointer"
+ }
+ },
+ "id": 404,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3268:4:1",
+ "memberName": "size",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 100,
+ "src": "3259:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3244:28:1"
+ },
+ {
+ "assignments": [
+ 407
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 407,
+ "mutability": "mutable",
+ "name": "entryPrice",
+ "nameLocation": "3291:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 450,
+ "src": "3283:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 406,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3283:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 410,
+ "initialValue": {
+ "expression": {
+ "id": 408,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 396,
+ "src": "3304:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position storage pointer"
+ }
+ },
+ "id": 409,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3313:10:1",
+ "memberName": "entryPrice",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 102,
+ "src": "3304:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3283:40:1"
+ },
+ {
+ "assignments": [
+ 413
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 413,
+ "mutability": "mutable",
+ "name": "side",
+ "nameLocation": "3339:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 450,
+ "src": "3334:9:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "typeName": {
+ "id": 412,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 411,
+ "name": "Side",
+ "nameLocations": [
+ "3334:4:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 96,
+ "src": "3334:4:1"
+ },
+ "referencedDeclaration": 96,
+ "src": "3334:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 416,
+ "initialValue": {
+ "expression": {
+ "id": 414,
+ "name": "position",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 396,
+ "src": "3346:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Position_$106_storage_ptr",
+ "typeString": "struct PerpetualDEX.Position storage pointer"
+ }
+ },
+ "id": 415,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3355:4:1",
+ "memberName": "side",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 105,
+ "src": "3346:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3334:25:1"
+ },
+ {
+ "assignments": [
+ 418
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 418,
+ "mutability": "mutable",
+ "name": "currentPrice",
+ "nameLocation": "3380:12:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 450,
+ "src": "3372:20:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 417,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3372:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 420,
+ "initialValue": {
+ "id": 419,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "3395:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3372:33:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ },
+ "id": 424,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 421,
+ "name": "side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 413,
+ "src": "3459:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "expression": {
+ "id": 422,
+ "name": "Side",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 96,
+ "src": "3467:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_enum$_Side_$96_$",
+ "typeString": "type(enum PerpetualDEX.Side)"
+ }
+ },
+ "id": 423,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "3472:4:1",
+ "memberName": "LONG",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 94,
+ "src": "3467:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_enum$_Side_$96",
+ "typeString": "enum PerpetualDEX.Side"
+ }
+ },
+ "src": "3459:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 448,
+ "nodeType": "Block",
+ "src": "3566:82:1",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 443,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 439,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 437,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 407,
+ "src": "3589:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 438,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 402,
+ "src": "3602:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3589:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 440,
+ "name": "currentPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 418,
+ "src": "3609:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 441,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 402,
+ "src": "3624:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3609:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3589:39:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 444,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3588:41:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "31653138",
+ "id": 445,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3632:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000000000000000000_by_1",
+ "typeString": "int_const 1000000000000000000"
+ },
+ "value": "1e18"
+ },
+ "src": "3588:48:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 393,
+ "id": 447,
+ "nodeType": "Return",
+ "src": "3581:55:1"
+ }
+ ]
+ },
+ "id": 449,
+ "nodeType": "IfStatement",
+ "src": "3455:193:1",
+ "trueBody": {
+ "id": 436,
+ "nodeType": "Block",
+ "src": "3478:82:1",
+ "statements": [
+ {
+ "expression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 431,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 427,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 425,
+ "name": "currentPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 418,
+ "src": "3501:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 426,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 402,
+ "src": "3516:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3501:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 430,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 428,
+ "name": "entryPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 407,
+ "src": "3523:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 429,
+ "name": "size",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 402,
+ "src": "3536:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3523:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3501:39:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 432,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "3500:41:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "31653138",
+ "id": 433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3544:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000000000000000000_by_1",
+ "typeString": "int_const 1000000000000000000"
+ },
+ "value": "1e18"
+ },
+ "src": "3500:48:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 393,
+ "id": 435,
+ "nodeType": "Return",
+ "src": "3493:55:1"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 451,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "calculateProfitAndLoss",
+ "nameLocation": "3098:22:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 390,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 389,
+ "mutability": "mutable",
+ "name": "positionId",
+ "nameLocation": "3129:10:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 451,
+ "src": "3121:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 388,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3121:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3120:20:1"
+ },
+ "returnParameters": {
+ "id": 393,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 392,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 451,
+ "src": "3164:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 391,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3164:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3163:9:1"
+ },
+ "scope": 559,
+ "src": "3089:566:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 489,
+ "nodeType": "Block",
+ "src": "3716:328:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 460,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 457,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "3735:3:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 458,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3739:6:1",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "3735:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 459,
+ "name": "admin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 82,
+ "src": "3749:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "3735:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4f6e6c792061646d696e2063616e2075706461746520696e646578207072696365",
+ "id": 461,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3756:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259",
+ "typeString": "literal_string \"Only admin can update index price\""
+ },
+ "value": "Only admin can update index price"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3acc1ded6db13af3927176c307888d5a106303ec6e3645d0a8b0169aaf1b7259",
+ "typeString": "literal_string \"Only admin can update index price\""
+ }
+ ],
+ "id": 456,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "3727:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 462,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3727:65:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 463,
+ "nodeType": "ExpressionStatement",
+ "src": "3727:65:1"
+ },
+ {
+ "expression": {
+ "id": 466,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 464,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "3803:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 465,
+ "name": "newPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 453,
+ "src": "3816:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3803:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 467,
+ "nodeType": "ExpressionStatement",
+ "src": "3803:21:1"
+ },
+ {
+ "assignments": [
+ 469
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 469,
+ "mutability": "mutable",
+ "name": "timeElapsed",
+ "nameLocation": "3843:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 489,
+ "src": "3835:19:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 468,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3835:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 474,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 473,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 470,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967292,
+ "src": "3857:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 471,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3863:9:1",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "3857:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 472,
+ "name": "lastFundingTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 87,
+ "src": "3875:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3857:38:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3835:60:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 475,
+ "name": "timeElapsed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 469,
+ "src": "3910:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3924:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3910:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 488,
+ "nodeType": "IfStatement",
+ "src": "3906:131:1",
+ "trueBody": {
+ "id": 487,
+ "nodeType": "Block",
+ "src": "3927:110:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 479,
+ "name": "timeElapsed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 469,
+ "src": "3960:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 478,
+ "name": "updateFundingRate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 513,
+ "src": "3942:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 480,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3942:30:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 481,
+ "nodeType": "ExpressionStatement",
+ "src": "3942:30:1"
+ },
+ {
+ "expression": {
+ "id": 485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 482,
+ "name": "lastFundingTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 87,
+ "src": "3987:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 483,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967292,
+ "src": "4010:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4016:9:1",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "4010:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3987:38:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 486,
+ "nodeType": "ExpressionStatement",
+ "src": "3987:38:1"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "functionSelector": "0ac02555",
+ "id": 490,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "updateIndexPrice",
+ "nameLocation": "3672:16:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 454,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 453,
+ "mutability": "mutable",
+ "name": "newPrice",
+ "nameLocation": "3697:8:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 490,
+ "src": "3689:16:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 452,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3689:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3688:18:1"
+ },
+ "returnParameters": {
+ "id": 455,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3716:0:1"
+ },
+ "scope": 559,
+ "src": "3663:381:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 512,
+ "nodeType": "Block",
+ "src": "4109:376:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 495,
+ "name": "fundingRate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 89,
+ "src": "4389:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 509,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 507,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 505,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 498,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 496,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "4404:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "31653138",
+ "id": 497,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4417:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000000000000000000_by_1",
+ "typeString": "int_const 1000000000000000000"
+ },
+ "value": "1e18"
+ },
+ "src": "4404:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 499,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "4424:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "31653138",
+ "id": 500,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4437:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000000000000000000_by_1",
+ "typeString": "int_const 1000000000000000000"
+ },
+ "value": "1e18"
+ },
+ "src": "4424:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4404:37:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 503,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4403:39:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "3836343030",
+ "id": 504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4445:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_86400_by_1",
+ "typeString": "int_const 86400"
+ },
+ "value": "86400"
+ },
+ "src": "4403:47:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 506,
+ "name": "timeElapsed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 492,
+ "src": "4453:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4403:61:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 508,
+ "name": "indexPrice",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 91,
+ "src": "4467:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4403:74:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4389:88:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 511,
+ "nodeType": "ExpressionStatement",
+ "src": "4389:88:1"
+ }
+ ]
+ },
+ "id": 513,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "updateFundingRate",
+ "nameLocation": "4061:17:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 493,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 492,
+ "mutability": "mutable",
+ "name": "timeElapsed",
+ "nameLocation": "4087:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 513,
+ "src": "4079:19:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 491,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4079:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4078:21:1"
+ },
+ "returnParameters": {
+ "id": 494,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4109:0:1"
+ },
+ "scope": 559,
+ "src": "4052:433:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 557,
+ "nodeType": "Block",
+ "src": "4524:386:1",
+ "statements": [
+ {
+ "assignments": [
+ 517
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 517,
+ "mutability": "mutable",
+ "name": "timeElapsed",
+ "nameLocation": "4543:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 557,
+ "src": "4535:19:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 516,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4535:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 522,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 518,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967292,
+ "src": "4557:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 519,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4563:9:1",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "4557:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 520,
+ "name": "lastFundingTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 87,
+ "src": "4575:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4557:38:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4535:60:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 526,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 524,
+ "name": "timeElapsed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 517,
+ "src": "4614:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 525,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4628:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4614:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4e6f742074696d6520666f722066756e64696e67207061796d656e7420796574",
+ "id": 527,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4631:34:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d",
+ "typeString": "literal_string \"Not time for funding payment yet\""
+ },
+ "value": "Not time for funding payment yet"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_86e1e6d12afb19f042a3accf194a6a6adbecf3a51bf6f593f798d5745afe3c9d",
+ "typeString": "literal_string \"Not time for funding payment yet\""
+ }
+ ],
+ "id": 523,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "4606:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 528,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4606:60:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 529,
+ "nodeType": "ExpressionStatement",
+ "src": "4606:60:1"
+ },
+ {
+ "assignments": [
+ 531
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 531,
+ "mutability": "mutable",
+ "name": "fundingPayment",
+ "nameLocation": "4685:14:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 557,
+ "src": "4677:22:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 530,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4677:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 541,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 540,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 537,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 535,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 532,
+ "name": "positions",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 110,
+ "src": "4703:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Position_$106_storage_$dyn_storage",
+ "typeString": "struct PerpetualDEX.Position storage ref[] storage ref"
+ }
+ },
+ "id": 533,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4713:6:1",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4703:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 534,
+ "name": "fundingRate",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 89,
+ "src": "4722:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4703:30:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 536,
+ "name": "timeElapsed",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 517,
+ "src": "4736:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4703:44:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 538,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4702:46:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "3836343030",
+ "id": 539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4751:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_86400_by_1",
+ "typeString": "int_const 86400"
+ },
+ "value": "86400"
+ },
+ "src": "4702:54:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4677:79:1"
+ },
+ {
+ "expression": {
+ "id": 546,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 542,
+ "name": "collateralBalances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 114,
+ "src": "4767:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 544,
+ "indexExpression": {
+ "id": 543,
+ "name": "admin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 82,
+ "src": "4786:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "4767:25:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 545,
+ "name": "fundingPayment",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 531,
+ "src": "4796:14:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4767:43:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 547,
+ "nodeType": "ExpressionStatement",
+ "src": "4767:43:1"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 549,
+ "name": "fundingPayment",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 531,
+ "src": "4838:14:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 548,
+ "name": "FundingPaid",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 146,
+ "src": "4826:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
+ "typeString": "function (uint256)"
+ }
+ },
+ "id": 550,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4826:27:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 551,
+ "nodeType": "EmitStatement",
+ "src": "4821:32:1"
+ },
+ {
+ "expression": {
+ "id": 555,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 552,
+ "name": "lastFundingTimestamp",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 87,
+ "src": "4864:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 553,
+ "name": "block",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967292,
+ "src": "4887:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_block",
+ "typeString": "block"
+ }
+ },
+ "id": 554,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4893:9:1",
+ "memberName": "timestamp",
+ "nodeType": "MemberAccess",
+ "src": "4887:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4864:38:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 556,
+ "nodeType": "ExpressionStatement",
+ "src": "4864:38:1"
+ }
+ ]
+ },
+ "functionSelector": "aaa5a2ad",
+ "id": 558,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "payFunding",
+ "nameLocation": "4502:10:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 514,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4512:2:1"
+ },
+ "returnParameters": {
+ "id": 515,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4524:0:1"
+ },
+ "scope": 559,
+ "src": "4493:417:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 560,
+ "src": "87:4826:1",
+ "usedErrors": []
+ }
+ ],
+ "src": "33:4880:1"
+ },
+ "compiler": {
+ "name": "solc",
+ "version": "0.8.17+commit.8df45f5f.Emscripten.clang"
+ },
+ "networks": {
+ "51": {
+ "events": {},
+ "links": {},
+ "address": "0x4ceAcd18D79E7cc99e181C772559785Eb157fe3B",
+ "transactionHash": "0x3a0b5e8edfc0603ff8a608fc602bedf796a90147009af709e66ec9f12f721fc7"
+ }
+ },
+ "schemaVersion": "3.4.11",
+ "updatedAt": "2023-10-25T07:49:45.634Z",
+ "networkType": "ethereum",
+ "devdoc": {
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+}
\ No newline at end of file
diff --git a/src/utils/api.ts b/src/utils/api.ts
new file mode 100644
index 0000000..f4f4ad5
--- /dev/null
+++ b/src/utils/api.ts
@@ -0,0 +1,68 @@
+/**
+ * This is the client-side entrypoint for your tRPC API. It is used to create the `api` object which
+ * contains the Next.js App-wrapper, as well as your type-safe React Query hooks.
+ *
+ * We also create a few inference helpers for input and output types.
+ */
+import { httpBatchLink, loggerLink } from "@trpc/client";
+import { createTRPCNext } from "@trpc/next";
+import { type inferRouterInputs, type inferRouterOutputs } from "@trpc/server";
+import superjson from "superjson";
+
+import { type AppRouter } from "~/server/api/root";
+
+const getBaseUrl = () => {
+ if (typeof window !== "undefined") return ""; // browser should use relative url
+ if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`; // SSR should use vercel url
+ return `http://localhost:${process.env.PORT ?? 3000}`; // dev SSR should use localhost
+};
+
+/** A set of type-safe react-query hooks for your tRPC API. */
+export const api = createTRPCNext({
+ config() {
+ return {
+ /**
+ * Transformer used for data de-serialization from the server.
+ *
+ * @see https://trpc.io/docs/data-transformers
+ */
+ transformer: superjson,
+
+ /**
+ * Links used to determine request flow from client to server.
+ *
+ * @see https://trpc.io/docs/links
+ */
+ links: [
+ loggerLink({
+ enabled: (opts) =>
+ process.env.NODE_ENV === "development" ||
+ (opts.direction === "down" && opts.result instanceof Error),
+ }),
+ httpBatchLink({
+ url: `${getBaseUrl()}/api/trpc`,
+ }),
+ ],
+ };
+ },
+ /**
+ * Whether tRPC should await queries when server rendering pages.
+ *
+ * @see https://trpc.io/docs/nextjs#ssr-boolean-default-false
+ */
+ ssr: false,
+});
+
+/**
+ * Inference helper for inputs.
+ *
+ * @example type HelloInput = RouterInputs['example']['hello']
+ */
+export type RouterInputs = inferRouterInputs;
+
+/**
+ * Inference helper for outputs.
+ *
+ * @example type HelloOutput = RouterOutputs['example']['hello']
+ */
+export type RouterOutputs = inferRouterOutputs;
diff --git a/src/utils/constants.ts b/src/utils/constants.ts
new file mode 100644
index 0000000..c187efe
--- /dev/null
+++ b/src/utils/constants.ts
@@ -0,0 +1,36 @@
+/*
+This file contains some constants that would need to be reaplced with real values
+once we can receive them from the Blockchain.
+*/
+
+import type { Pair } from "~/types";
+
+const defaultPair: Pair = {
+ numerator: "XDC",
+ denominator: "USDT",
+};
+
+const contractAddress: `0x${string}` =
+ // "0xf7FF85EB675096Da320eF4a6ad06393c91b07CD1"; // v1
+ // "0x17688Bf34f8bce6F6b698da4AE68D92aAB332b05"; // v2
+ // "0x2F8056184a0a2C7B9571179f3Be1A6793b6C4c3E"; // v3
+ // "0x60137e84325B5856567B933FBAa4C5798DB12E25"; // v4
+ // "0x0f276486F610f00F3566d0E86Ef7D787f818de51"; // v5
+ "0x4cD44b63306C763F16151dbbE1F6237E6CdCC261"; //v6
+
+const walletConnectProjectId = "f2a8b0c8053e31d62e16f27ad108ea3c";
+
+const currentPrice = 1.12;
+
+const allowedSlippage = 0.003;
+
+const currentXDCPrice = 0.5;
+
+export {
+ defaultPair,
+ contractAddress,
+ currentPrice,
+ walletConnectProjectId,
+ allowedSlippage,
+ currentXDCPrice,
+};
diff --git a/src/utils/financialData.ts b/src/utils/financialData.ts
new file mode 100644
index 0000000..69a7d7e
--- /dev/null
+++ b/src/utils/financialData.ts
@@ -0,0 +1,119 @@
+/*
+This file contains helper functions to be able to generate mock-up data and aggregate it to candles of different sizes.
+*/
+
+import type { FinancialData, D } from '~/types';
+
+export function financialDataToD(f: FinancialData): D {
+ return {
+ x: new Date(f.time*1000),
+ y: [f.open, f.high, f.low, f.close]
+ };
+};
+
+export function dToFinancialData(d: D): FinancialData {
+ return {
+ time: Math.floor(d.x.getTime() / 1000),
+ label: String(d.x),
+ open: d.y[0]!,
+ high: d.y[1]!,
+ low: d.y[2]!,
+ close: d.y[3]!,
+ volume: 0,
+ }
+};
+
+/*
+This class generates a random array of financial data aggregated to the minute level.
+*/
+export class SampleFinancialData {
+
+ public static create(items?: number, rangeMins?: number): FinancialData[] {
+ // initial values
+ let v = 10000;
+ let o = 0.0492;
+ let h = Math.round((o + (Math.random() * 0.001)) * 10000) / 10000;
+ let l = Math.round((o - (Math.random() * 0.001)) * 10000) / 10000;
+ let c = Math.round((l + (Math.random() * (h - l))) * 10000) / 10000;
+
+ if (items === undefined) {
+ items = 5;
+ }
+
+ if (rangeMins === undefined) {
+ rangeMins = 30;
+ }
+
+ //const today = new Date();
+ const end = new Date().getTime();
+ let time = end - items * rangeMins * 60 * 1000;
+
+ const data: FinancialData[] = [];
+ for (let i = 0; i < items; i++) {
+ const label = this.getShortDate(new Date(time), true);
+ // adding new data item
+ data.push({"time": time, "label": label, "open": o, "high": h, "low": l, "close": c, "volume": v});
+ // generating new values
+ const mod = Math.random() - 0.45;
+ o = Math.round((c + (mod * 0.0001)) * 10000) / 10000;
+ v = Math.round(v + (mod * 5 * 100));
+ h = Math.round((o + (Math.random() * 0.001)) * 10000) / 10000;
+ l = Math.round((o - (Math.random() * 0.001)) * 10000) / 10000;
+ c = Math.round((l + (Math.random() * (h - l))) * 10000) / 10000;
+ time += rangeMins * 60 * 1000;
+ }
+ return data;
+ }
+
+ public static getShortDate(dt: Date, showYear: boolean): string {
+ const months = [
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+ ];
+ const ind = dt.getMonth();
+ const day = dt.getDay() + 1;
+ let label = months[ind] + " " + day;
+ if (showYear) {
+ label += ", " + dt.getFullYear();
+ }
+ return label;
+ }
+}
+
+/*
+This class aggregates 1-min-OHLC data to the needed level of details.
+*/
+export class ReduceFinancialData {
+ public static chunkIntoN = (arr: FinancialData[], n: number): FinancialData[][] => {
+ const size = Math.ceil(arr.length / n);
+ return Array.from({ length: n }, (v, i) =>
+ arr.slice(i * size, i * size + size)
+ );
+ }
+
+ public static aggregate(period: FinancialData[]): FinancialData {
+ const d = period.reduce((acc: FinancialData, current: FinancialData) => ({
+ time: acc.time,
+ label: acc.label,
+ open: acc.open,
+ close: current.close,
+ high: current.high>acc.high?current.high:acc.high,
+ low: current.low {
+ return this.aggregate(el);
+ });
+
+ if(graphLength === undefined) graphLength = 120;
+ const output: FinancialData[] = out.slice(out.length - graphLength, out.length);
+
+ return output;
+ }
+}
\ No newline at end of file
diff --git a/src/utils/helpers.ts b/src/utils/helpers.ts
new file mode 100644
index 0000000..a921be5
--- /dev/null
+++ b/src/utils/helpers.ts
@@ -0,0 +1,405 @@
+import type { Position } from "~/types";
+import { currentPrice } from "./constants";
+
+/**
+ * Format price to display eg. 2.1535322 => 2.15
+ */
+export const formatPrice = (price: number | bigint) => {
+ return Number(price).toFixed(2);
+};
+
+/**
+ * uses formatPrice but if the decimal is 0, it will remove it
+ */
+export const formatWholePrice = (price: number | bigint) => {
+ const formattedPrice = formatPrice(price);
+ return formattedPrice.endsWith(".00")
+ ? formattedPrice.slice(0, -3)
+ : formattedPrice;
+};
+
+/**
+ * gets a mock for the position given the collateral x1.1
+ */
+export const getMockPosition = (collateral: string): string => {
+ return Number(formatPrice(Number(collateral))) * 1.1 + "";
+};
+
+/**
+ * gets the pnl for the position
+ * @param position
+ * @returns pnl
+ */
+export const getPnl = (position: Partial) => {
+ const { entryPrice, side } = position;
+ const pnl =
+ (side === 0
+ ? Number(currentPrice) - Number(entryPrice)
+ : Number(entryPrice) - Number(currentPrice)) * Number(position.size);
+ return pnl;
+};
+
+export const ABI = [
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_collateralToken",
+ type: "address",
+ },
+ ],
+ stateMutability: "nonpayable",
+ type: "constructor",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "fundingPayment",
+ type: "uint256",
+ },
+ ],
+ name: "FundingPaid",
+ type: "event",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "trader",
+ type: "address",
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "positionId",
+ type: "uint256",
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "size",
+ type: "uint256",
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "entryPrice",
+ type: "uint256",
+ },
+ {
+ indexed: false,
+ internalType: "enum PerpetualDEX.Side",
+ name: "side",
+ type: "uint8",
+ },
+ {
+ indexed: false,
+ internalType: "int256",
+ name: "profit",
+ type: "int256",
+ },
+ ],
+ name: "PositionClosed",
+ type: "event",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "trader",
+ type: "address",
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "positionId",
+ type: "uint256",
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "size",
+ type: "uint256",
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "entryPrice",
+ type: "uint256",
+ },
+ {
+ indexed: false,
+ internalType: "enum PerpetualDEX.Side",
+ name: "side",
+ type: "uint8",
+ },
+ ],
+ name: "PositionOpened",
+ type: "event",
+ },
+ {
+ inputs: [],
+ name: "admin",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address",
+ },
+ ],
+ name: "collateralBalances",
+ outputs: [
+ {
+ internalType: "int256",
+ name: "",
+ type: "int256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [],
+ name: "collateralToken",
+ outputs: [
+ {
+ internalType: "contract IXRC20",
+ name: "",
+ type: "address",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [],
+ name: "currentPrice",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [],
+ name: "feeRate",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [],
+ name: "fundingRate",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [],
+ name: "lastFundingTimestamp",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ name: "positions",
+ outputs: [
+ {
+ internalType: "address",
+ name: "trader",
+ type: "address",
+ },
+ {
+ internalType: "uint256",
+ name: "size",
+ type: "uint256",
+ },
+ {
+ internalType: "uint256",
+ name: "entryPrice",
+ type: "uint256",
+ },
+ {
+ internalType: "enum PerpetualDEX.Side",
+ name: "side",
+ type: "uint8",
+ },
+ {
+ internalType: "enum PerpetualDEX.State",
+ name: "state",
+ type: "uint8",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "size",
+ type: "uint256",
+ },
+ {
+ internalType: "uint256",
+ name: "entryPrice",
+ type: "uint256",
+ },
+ {
+ internalType: "enum PerpetualDEX.Side",
+ name: "side",
+ type: "uint8",
+ },
+ ],
+ name: "openPosition",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "positionId",
+ type: "uint256",
+ },
+ ],
+ name: "closePosition",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newPrice",
+ type: "uint256",
+ },
+ ],
+ name: "updatecurrentPrice",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [],
+ name: "payFunding",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "to",
+ type: "address",
+ },
+ {
+ internalType: "uint256",
+ name: "value",
+ type: "uint256",
+ },
+ ],
+ name: "transferTokens",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address",
+ },
+ ],
+ name: "getTokenBalance",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true,
+ },
+ {
+ inputs: [
+ {
+ internalType: "int256",
+ name: "x",
+ type: "int256",
+ },
+ ],
+ name: "absoluteValue",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "pure",
+ type: "function",
+ constant: true,
+ },
+] as const;
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000..0377ea1
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,76 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ darkMode: ["class"],
+ content: [
+ './pages/**/*.{ts,tsx}',
+ './components/**/*.{ts,tsx}',
+ './app/**/*.{ts,tsx}',
+ './src/**/*.{ts,tsx}',
+ ],
+ theme: {
+ container: {
+ center: true,
+ padding: "2rem",
+ screens: {
+ "2xl": "1400px",
+ },
+ },
+ extend: {
+ colors: {
+ border: "hsl(var(--border))",
+ input: "hsl(var(--input))",
+ ring: "hsl(var(--ring))",
+ background: "hsl(var(--background))",
+ foreground: "hsl(var(--foreground))",
+ primary: {
+ DEFAULT: "hsl(var(--primary))",
+ foreground: "hsl(var(--primary-foreground))",
+ },
+ secondary: {
+ DEFAULT: "hsl(var(--secondary))",
+ foreground: "hsl(var(--secondary-foreground))",
+ },
+ destructive: {
+ DEFAULT: "hsl(var(--destructive))",
+ foreground: "hsl(var(--destructive-foreground))",
+ },
+ muted: {
+ DEFAULT: "hsl(var(--muted))",
+ foreground: "hsl(var(--muted-foreground))",
+ },
+ accent: {
+ DEFAULT: "hsl(var(--accent))",
+ foreground: "hsl(var(--accent-foreground))",
+ },
+ popover: {
+ DEFAULT: "hsl(var(--popover))",
+ foreground: "hsl(var(--popover-foreground))",
+ },
+ card: {
+ DEFAULT: "hsl(var(--card))",
+ foreground: "hsl(var(--card-foreground))",
+ },
+ },
+ borderRadius: {
+ lg: "var(--radius)",
+ md: "calc(var(--radius) - 2px)",
+ sm: "calc(var(--radius) - 4px)",
+ },
+ keyframes: {
+ "accordion-down": {
+ from: { height: 0 },
+ to: { height: "var(--radix-accordion-content-height)" },
+ },
+ "accordion-up": {
+ from: { height: "var(--radix-accordion-content-height)" },
+ to: { height: 0 },
+ },
+ },
+ animation: {
+ "accordion-down": "accordion-down 0.2s ease-out",
+ "accordion-up": "accordion-up 0.2s ease-out",
+ },
+ },
+ },
+ plugins: [require("tailwindcss-animate")],
+}
\ No newline at end of file
diff --git a/tailwind.config.ts b/tailwind.config.ts
new file mode 100644
index 0000000..f06488f
--- /dev/null
+++ b/tailwind.config.ts
@@ -0,0 +1,14 @@
+import { type Config } from "tailwindcss";
+import { fontFamily } from "tailwindcss/defaultTheme";
+
+export default {
+ content: ["./src/**/*.tsx"],
+ theme: {
+ extend: {
+ fontFamily: {
+ sans: ["var(--font-sans)", ...fontFamily.sans],
+ },
+ },
+ },
+ plugins: [],
+} satisfies Config;
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..1dfa3a8
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,35 @@
+{
+ "compilerOptions": {
+ "target": "es2017",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "checkJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "noUncheckedIndexedAccess": true,
+ "baseUrl": ".",
+ "paths": {
+ "~/*": ["./src/*"]
+ },
+ "plugins": [{ "name": "next" }]
+ },
+ "include": [
+ ".eslintrc.cjs",
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ "**/*.cjs",
+ "**/*.mjs",
+ ".next/types/**/*.ts"
+ ],
+ "exclude": ["node_modules"]
+}