From a725abf32ff1644678879aef50c56d2f4174a4c9 Mon Sep 17 00:00:00 2001 From: vitor Date: Sat, 21 Jun 2025 14:50:26 -0300 Subject: [PATCH 1/7] feat(vscode): add extensions recommendations for FuelLabs Sway plugin --- .vscode/extensions.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..b520213 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["FuelLabs.sway-vscode-plugin"] +} From 3eb93c03e37e467e0efab9af1de24e5ad7002fc5 Mon Sep 17 00:00:00 2001 From: vitor Date: Sat, 21 Jun 2025 15:54:58 -0300 Subject: [PATCH 2/7] feat: add auction contract with core functionality - Introduced a new auction contract with the ability to start, place bids, and end auctions. - Implemented error handling for various auction states (e.g., auction not found, bid too low). - Added events for auction lifecycle (AuctionStartedEvent, BidPlacedEvent, AuctionEndedEvent). - Created necessary structs for auction management, including Auction and StartAuction. - Integrated ownership and pausable features using sway_libs. - Updated Forc.lock and Forc.toml to include new auction package and dependencies. --- bun.lock | 436 +++++++++++------- packages/contracts/sway/Forc.lock | 20 +- packages/contracts/sway/Forc.toml | 2 +- packages/contracts/sway/auction/.gitignore | 2 + packages/contracts/sway/auction/Forc.toml | 8 + packages/contracts/sway/auction/src/errors.sw | 30 ++ packages/contracts/sway/auction/src/events.sw | 24 + .../contracts/sway/auction/src/interfaces.sw | 128 +++++ packages/contracts/sway/auction/src/main.sw | 133 ++++++ .../contracts/sway/auction/src/structs.sw | 44 ++ 10 files changed, 653 insertions(+), 174 deletions(-) mode change 100644 => 100755 bun.lock create mode 100644 packages/contracts/sway/auction/.gitignore create mode 100644 packages/contracts/sway/auction/Forc.toml create mode 100644 packages/contracts/sway/auction/src/errors.sw create mode 100644 packages/contracts/sway/auction/src/events.sw create mode 100644 packages/contracts/sway/auction/src/interfaces.sw create mode 100644 packages/contracts/sway/auction/src/main.sw create mode 100644 packages/contracts/sway/auction/src/structs.sw diff --git a/bun.lock b/bun.lock old mode 100644 new mode 100755 index e2f8079..19e0ea8 --- a/bun.lock +++ b/bun.lock @@ -1,8 +1,7 @@ { - "lockfileVersion": 1, + "lockfileVersion": 0, "workspaces": { "": { - "name": "kombination", "devDependencies": { "@biomejs/biome": "1.9.4", "turbo": "^2.4.4", @@ -13,7 +12,9 @@ "name": "server", "version": "0.0.1", "dependencies": { + "@elysiajs/cors": "^1.2.0", "@elysiajs/swagger": "^1.2.2", + "@kombination/env": "packages/env", }, "devDependencies": { "@types/bun": "latest", @@ -36,14 +37,25 @@ "fuels": "0.100.0", }, "devDependencies": { - "@packages/ts-config": "*", + "@packages/ts-config": "packages/typescript-config", "@types/bun": "latest", - "vitest": "^3.1.1", }, "peerDependencies": { "typescript": "5.8.2", }, }, + "packages/env": { + "name": "@kombination/env", + "version": "0.0.0", + "dependencies": { + "@t3-oss/env-core": "^0.12.0", + "zod": "^3.24.2", + }, + "devDependencies": { + "@packages/ts-config": "packages/typescript-config", + "tsup": "^8.4.0", + }, + }, "packages/typescript-config": { "name": "@packages/ts-config", "version": "0.0.1", @@ -56,7 +68,7 @@ "react-dom": "^19.1.0", }, "devDependencies": { - "@packages/ts-config": "*", + "@packages/ts-config": "packages/typescript-config", "@turbo/gen": "^2.4.4", "@types/node": "^22.13.10", "@types/react": "19.0.12", @@ -66,7 +78,7 @@ }, }, "packages": { - "@babel/runtime-corejs3": ["@babel/runtime-corejs3@7.27.0", "", { "dependencies": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" } }, "sha512-UWjX6t+v+0ckwZ50Y5ShZLnlk95pP5MyW/pon9tiYzl3+18pkTHTFNTKr7rQbfRXPkowt2QAn30o1b6oswszew=="], + "@babel/runtime-corejs3": ["@babel/runtime-corejs3@7.27.6", "", { "dependencies": { "core-js-pure": "^3.30.2" } }, "sha512-vDVrlmRAY8z9Ul/HxT+8ceAru95LQgkSKiXkSYZvqtbkPSfhZJgpRp45Cldbh1GJ1kxzQkI70AqyrTI58KpaWQ=="], "@biomejs/biome": ["@biomejs/biome@1.9.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "1.9.4", "@biomejs/cli-darwin-x64": "1.9.4", "@biomejs/cli-linux-arm64": "1.9.4", "@biomejs/cli-linux-arm64-musl": "1.9.4", "@biomejs/cli-linux-x64": "1.9.4", "@biomejs/cli-linux-x64-musl": "1.9.4", "@biomejs/cli-win32-arm64": "1.9.4", "@biomejs/cli-win32-x64": "1.9.4" }, "bin": { "biome": "bin/biome" } }, "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog=="], @@ -88,57 +100,59 @@ "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], - "@elysiajs/swagger": ["@elysiajs/swagger@1.2.2", "", { "dependencies": { "@scalar/themes": "^0.9.52", "@scalar/types": "^0.0.12", "openapi-types": "^12.1.3", "pathe": "^1.1.2" }, "peerDependencies": { "elysia": ">= 1.2.0" } }, "sha512-DG0PbX/wzQNQ6kIpFFPCvmkkWTIbNWDS7lVLv3Puy6ONklF14B4NnbDfpYjX1hdSYKeCqKBBOuenh6jKm8tbYA=="], + "@elysiajs/cors": ["@elysiajs/cors@1.3.3", "", { "peerDependencies": { "elysia": ">= 1.3.0" } }, "sha512-mYIU6PyMM6xIJuj7d27Vt0/wuzVKIEnFPjcvlkyd7t/m9xspAG37cwNjFxVOnyvY43oOd2I/oW2DB85utXpA2Q=="], + + "@elysiajs/swagger": ["@elysiajs/swagger@1.3.0", "", { "dependencies": { "@scalar/themes": "^0.9.52", "@scalar/types": "^0.0.12", "openapi-types": "^12.1.3", "pathe": "^1.1.2" }, "peerDependencies": { "elysia": ">= 1.3.0" } }, "sha512-0fo3FWkDRPNYpowJvLz3jBHe9bFe6gruZUyf+feKvUEEMG9ZHptO1jolSoPE0ffFw1BgN1/wMsP19p4GRXKdfg=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.25.0", "", { "os": "android", "cpu": "arm" }, "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.5", "", { "os": "android", "cpu": "arm" }, "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.0", "", { "os": "android", "cpu": "arm64" }, "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.5", "", { "os": "android", "cpu": "arm64" }, "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.25.0", "", { "os": "android", "cpu": "x64" }, "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.5", "", { "os": "android", "cpu": "x64" }, "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.0", "", { "os": "linux", "cpu": "arm" }, "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.5", "", { "os": "linux", "cpu": "arm" }, "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.0", "", { "os": "linux", "cpu": "ia32" }, "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.0", "", { "os": "linux", "cpu": "none" }, "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.0", "", { "os": "linux", "cpu": "none" }, "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.0", "", { "os": "linux", "cpu": "none" }, "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.0", "", { "os": "linux", "cpu": "x64" }, "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.5", "", { "os": "linux", "cpu": "x64" }, "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw=="], - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.0", "", { "os": "none", "cpu": "arm64" }, "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw=="], + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.5", "", { "os": "none", "cpu": "arm64" }, "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.0", "", { "os": "none", "cpu": "x64" }, "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.5", "", { "os": "none", "cpu": "x64" }, "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ=="], - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.0", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw=="], + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.5", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.0", "", { "os": "sunos", "cpu": "x64" }, "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw=="], + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA=="], + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.0", "", { "os": "win32", "cpu": "x64" }, "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ=="], + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g=="], "@fuel-ts/abi-coder": ["@fuel-ts/abi-coder@0.100.0", "", { "dependencies": { "@fuel-ts/crypto": "0.100.0", "@fuel-ts/errors": "0.100.0", "@fuel-ts/hasher": "0.100.0", "@fuel-ts/math": "0.100.0", "@fuel-ts/utils": "0.100.0", "type-fest": "4.34.1" } }, "sha512-Fp4nGs7VvYJY/logk5Q8bbidA2bBPADvi4s9ylO1Lb9D1VgCl37yd3qqFN2NixIZtZIrsyJzpwGQKOQoJQpxGQ=="], @@ -178,11 +192,17 @@ "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="], + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], + + "@kombination/env": ["@kombination/env@workspace:packages/env", { "dependencies": { "@t3-oss/env-core": "^0.12.0", "zod": "^3.24.2" }, "devDependencies": { "@packages/ts-config": "packages/typescript-config", "tsup": "^8.4.0" } }], "@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], @@ -194,61 +214,67 @@ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@packages/contracts": ["@packages/contracts@workspace:packages/contracts"], + "@packages/contracts": ["@packages/contracts@workspace:packages/contracts", { "dependencies": { "fuels": "0.100.0" }, "devDependencies": { "@packages/ts-config": "packages/typescript-config", "@types/bun": "latest" }, "peerDependencies": { "typescript": "5.8.2" } }], - "@packages/ts-config": ["@packages/ts-config@workspace:packages/typescript-config"], + "@packages/ts-config": ["@packages/ts-config@workspace:packages/typescript-config", {}], - "@packages/ui": ["@packages/ui@workspace:packages/ui-components"], + "@packages/ui": ["@packages/ui@workspace:packages/ui-components", { "dependencies": { "react": "^19.1.0", "react-dom": "^19.1.0" }, "devDependencies": { "@packages/ts-config": "packages/typescript-config", "@turbo/gen": "^2.4.4", "@types/node": "^22.13.10", "@types/react": "19.0.12", "@types/react-dom": "19.0.4", "typescript": "5.8.2" } }], "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.40.0", "", { "os": "android", "cpu": "arm" }, "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.43.0", "", { "os": "android", "cpu": "arm" }, "sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.40.0", "", { "os": "android", "cpu": "arm64" }, "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.43.0", "", { "os": "android", "cpu": "arm64" }, "sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.40.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.43.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.40.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.43.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.40.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.43.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.40.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.43.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.40.0", "", { "os": "linux", "cpu": "arm" }, "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.43.0", "", { "os": "linux", "cpu": "arm" }, "sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.40.0", "", { "os": "linux", "cpu": "arm" }, "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.43.0", "", { "os": "linux", "cpu": "arm" }, "sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.40.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.43.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.40.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.43.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA=="], - "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.40.0", "", { "os": "linux", "cpu": "none" }, "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg=="], + "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.43.0", "", { "os": "linux", "cpu": "none" }, "sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg=="], - "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.40.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw=="], + "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.43.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.40.0", "", { "os": "linux", "cpu": "none" }, "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.43.0", "", { "os": "linux", "cpu": "none" }, "sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.40.0", "", { "os": "linux", "cpu": "none" }, "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.43.0", "", { "os": "linux", "cpu": "none" }, "sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.40.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.43.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.40.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.43.0", "", { "os": "linux", "cpu": "x64" }, "sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.40.0", "", { "os": "linux", "cpu": "x64" }, "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.43.0", "", { "os": "linux", "cpu": "x64" }, "sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.40.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.43.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.40.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.43.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.40.0", "", { "os": "win32", "cpu": "x64" }, "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.43.0", "", { "os": "win32", "cpu": "x64" }, "sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw=="], "@scalar/openapi-types": ["@scalar/openapi-types@0.1.1", "", {}, "sha512-NMy3QNk6ytcCoPUGJH0t4NNr36OWXgZhA3ormr3TvhX1NDgoF95wFyodGVH8xiHeUyn2/FxtETm8UBLbB5xEmg=="], - "@scalar/themes": ["@scalar/themes@0.9.83", "", { "dependencies": { "@scalar/types": "0.1.5" } }, "sha512-HQk3O7l0ZoCjT+qY2uPbge8oxJXq8gvrEHfHPa578BMcI5FlUQydiers8KoJBUHbOrT6pPqGzi/J5Q0zwmbJhg=="], + "@scalar/themes": ["@scalar/themes@0.9.86", "", { "dependencies": { "@scalar/types": "0.1.7" } }, "sha512-QUHo9g5oSWi+0Lm1vJY9TaMZRau8LHg+vte7q5BVTBnu6NuQfigCaN+ouQ73FqIVd96TwMO6Db+dilK1B+9row=="], "@scalar/types": ["@scalar/types@0.0.12", "", { "dependencies": { "@scalar/openapi-types": "0.1.1", "@unhead/schema": "^1.9.5" } }, "sha512-XYZ36lSEx87i4gDqopQlGCOkdIITHHEvgkuJFrXFATQs9zHARop0PN0g4RZYWj+ZpCUclOcaOjbCt8JGe22mnQ=="], - "@sinclair/typebox": ["@sinclair/typebox@0.34.33", "", {}, "sha512-5HAV9exOMcXRUxo+9iYB5n09XxzCXnfy4VTNW4xnDv+FgjzAGY989C28BIdljKqmF+ZltUwujE3aossvcVtq6g=="], + "@sinclair/typebox": ["@sinclair/typebox@0.34.35", "", {}, "sha512-C6ypdODf2VZkgRT6sFM8E1F8vR+HcffniX0Kp8MsU8PIfrlXbNCBz0jzj17GjdmjTx1OtZzdH8+iALL21UjF5A=="], + + "@t3-oss/env-core": ["@t3-oss/env-core@0.12.0", "", { "peerDependencies": { "typescript": ">=5.0.0", "valibot": "^1.0.0-beta.7 || ^1.0.0", "zod": "^3.24.0" }, "optionalPeers": ["typescript", "valibot", "zod"] }, "sha512-lOPj8d9nJJTt81mMuN9GMk8x5veOt7q9m11OSnCBJhwp1QrL/qR+M8Y467ULBSm9SunosryWNbmQQbgoiMgcdw=="], + + "@tokenizer/inflate": ["@tokenizer/inflate@0.2.7", "", { "dependencies": { "debug": "^4.4.0", "fflate": "^0.8.2", "token-types": "^6.0.0" } }, "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg=="], + + "@tokenizer/token": ["@tokenizer/token@0.3.0", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], "@tootallnate/quickjs-emscripten": ["@tootallnate/quickjs-emscripten@0.23.0", "", {}, "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="], @@ -260,13 +286,13 @@ "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="], - "@turbo/gen": ["@turbo/gen@2.4.4", "", { "dependencies": { "@turbo/workspaces": "2.4.4", "commander": "^10.0.0", "fs-extra": "^10.1.0", "inquirer": "^8.2.4", "minimatch": "^9.0.0", "node-plop": "^0.26.3", "picocolors": "1.0.1", "proxy-agent": "^6.2.2", "ts-node": "^10.9.2", "update-check": "^1.5.4", "validate-npm-package-name": "^5.0.0" }, "bin": { "gen": "dist/cli.js" } }, "sha512-02DR0UFngfVROq/L7j4VdkpT46Rnk5mm8i5AE985jV114SjuN57Y2oBjSK9Lzm6hlun/H0MQtdJBRybk4nRIAQ=="], + "@turbo/gen": ["@turbo/gen@2.5.4", "", { "dependencies": { "@turbo/workspaces": "2.5.4", "commander": "^10.0.0", "fs-extra": "^10.1.0", "inquirer": "^8.2.4", "minimatch": "^9.0.0", "node-plop": "^0.26.3", "picocolors": "1.0.1", "proxy-agent": "^6.5.0", "ts-node": "^10.9.2", "update-check": "^1.5.4", "validate-npm-package-name": "^5.0.0" }, "bin": { "gen": "dist/cli.js" } }, "sha512-e69ut1PHTuwjqoZNF4Zpi8mOvh6EIkbUthh797y+Z/46bwiQfGsEKfw94t0CT+8UcwMvRZCbRXU7xo8hI86eDQ=="], - "@turbo/workspaces": ["@turbo/workspaces@2.4.4", "", { "dependencies": { "commander": "^10.0.0", "execa": "5.1.1", "fast-glob": "^3.2.12", "fs-extra": "^10.1.0", "gradient-string": "^2.0.0", "inquirer": "^8.0.0", "js-yaml": "^4.1.0", "ora": "4.1.1", "picocolors": "1.0.1", "semver": "7.6.2", "update-check": "^1.5.4" }, "bin": { "workspaces": "dist/cli.js" } }, "sha512-5CK3ZkVskSExf9YaXVMJ04F6Fb18HXKVZw8TMKVP7qOIvHGiBmT6YzWHqsQ3/PMNov2TzJ41ofRKX3zjR3G6Yg=="], + "@turbo/workspaces": ["@turbo/workspaces@2.5.4", "", { "dependencies": { "commander": "^10.0.0", "execa": "5.1.1", "fast-glob": "^3.2.12", "fs-extra": "^10.1.0", "gradient-string": "^2.0.0", "inquirer": "^8.0.0", "js-yaml": "^4.1.0", "ora": "4.1.1", "picocolors": "1.0.1", "semver": "7.6.2", "update-check": "^1.5.4" }, "bin": { "workspaces": "dist/cli.js" } }, "sha512-LLmImNOyDOZ8XNsNolefa7wQdrzAss0CoedPADCZFB+iIDXW+8w4YkgOvKaLKBLcm9kb7gWCP4L0o0EiZLXBUA=="], "@types/bn.js": ["@types/bn.js@5.1.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w=="], - "@types/bun": ["@types/bun@1.2.9", "", { "dependencies": { "bun-types": "1.2.9" } }, "sha512-epShhLGQYc4Bv/aceHbmBhOz1XgUnuTZgcxjxk+WXwNyDXavv5QHD1QEFV0FwbTSQtNq6g4ZcV6y0vZakTjswg=="], + "@types/bun": ["@types/bun@1.2.16", "", { "dependencies": { "bun-types": "1.2.16" } }, "sha512-1aCZJ/6nSiViw339RsaNhkNoEloLaPzZhxMOYEa7OzRzO41IGg5n/7I43/ZIAW/c+Q6cT12Vf7fOZOoVIzb5BQ=="], "@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="], @@ -276,7 +302,7 @@ "@types/minimatch": ["@types/minimatch@5.1.2", "", {}, "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA=="], - "@types/node": ["@types/node@22.13.17", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g=="], + "@types/node": ["@types/node@22.15.31", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw=="], "@types/react": ["@types/react@19.0.12", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA=="], @@ -286,25 +312,23 @@ "@types/tinycolor2": ["@types/tinycolor2@1.4.6", "", {}, "sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw=="], - "@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], - "@unhead/schema": ["@unhead/schema@1.11.20", "", { "dependencies": { "hookable": "^5.5.3", "zhead": "^2.2.4" } }, "sha512-0zWykKAaJdm+/Y7yi/Yds20PrUK7XabLe9c3IRcjnwYmSWY6z0Cr19VIs3ozCj8P+GhR+/TI2mwtGlueCEYouA=="], - "@vitest/expect": ["@vitest/expect@3.1.1", "", { "dependencies": { "@vitest/spy": "3.1.1", "@vitest/utils": "3.1.1", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" } }, "sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA=="], + "@vitest/expect": ["@vitest/expect@3.0.5", "", { "dependencies": { "@vitest/spy": "3.0.5", "@vitest/utils": "3.0.5", "chai": "^5.1.2", "tinyrainbow": "^2.0.0" } }, "sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA=="], - "@vitest/mocker": ["@vitest/mocker@3.1.1", "", { "dependencies": { "@vitest/spy": "3.1.1", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0 || ^6.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA=="], + "@vitest/mocker": ["@vitest/mocker@3.0.5", "", { "dependencies": { "@vitest/spy": "3.0.5", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0 || ^6.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw=="], - "@vitest/pretty-format": ["@vitest/pretty-format@3.1.1", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA=="], + "@vitest/pretty-format": ["@vitest/pretty-format@3.2.3", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng=="], - "@vitest/runner": ["@vitest/runner@3.1.1", "", { "dependencies": { "@vitest/utils": "3.1.1", "pathe": "^2.0.3" } }, "sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA=="], + "@vitest/runner": ["@vitest/runner@3.0.5", "", { "dependencies": { "@vitest/utils": "3.0.5", "pathe": "^2.0.2" } }, "sha512-BAiZFityFexZQi2yN4OX3OkJC6scwRo8EhRB0Z5HIGGgd2q+Nq29LgHU/+ovCtd0fOfXj5ZI6pwdlUmC5bpi8A=="], - "@vitest/snapshot": ["@vitest/snapshot@3.1.1", "", { "dependencies": { "@vitest/pretty-format": "3.1.1", "magic-string": "^0.30.17", "pathe": "^2.0.3" } }, "sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw=="], + "@vitest/snapshot": ["@vitest/snapshot@3.0.5", "", { "dependencies": { "@vitest/pretty-format": "3.0.5", "magic-string": "^0.30.17", "pathe": "^2.0.2" } }, "sha512-GJPZYcd7v8QNUJ7vRvLDmRwl+a1fGg4T/54lZXe+UOGy47F9yUfE18hRCtXL5aHN/AONu29NGzIXSVFh9K0feA=="], - "@vitest/spy": ["@vitest/spy@3.1.1", "", { "dependencies": { "tinyspy": "^3.0.2" } }, "sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ=="], + "@vitest/spy": ["@vitest/spy@3.0.5", "", { "dependencies": { "tinyspy": "^3.0.2" } }, "sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg=="], - "@vitest/utils": ["@vitest/utils@3.1.1", "", { "dependencies": { "@vitest/pretty-format": "3.1.1", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" } }, "sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg=="], + "@vitest/utils": ["@vitest/utils@3.0.5", "", { "dependencies": { "@vitest/pretty-format": "3.0.5", "loupe": "^3.1.2", "tinyrainbow": "^2.0.0" } }, "sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg=="], - "acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="], + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], "acorn-walk": ["acorn-walk@8.3.4", "", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g=="], @@ -318,6 +342,8 @@ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], "arg": ["arg@4.1.3", "", {}, "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="], @@ -344,13 +370,13 @@ "bn.js": ["bn.js@5.2.1", "", {}, "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="], - "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], + "brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], - "bun-types": ["bun-types@1.2.9", "", { "dependencies": { "@types/node": "*", "@types/ws": "*" } }, "sha512-dk/kOEfQbajENN/D6FyiSgOKEuUi9PWfqKQJEgwKrCMWbjS/S6tEXp178mWvWAcUSYm9ArDlWHZKO3T/4cLXiw=="], + "bun-types": ["bun-types@1.2.16", "", { "dependencies": { "@types/node": "*" } }, "sha512-ciXLrHV4PXax9vHvUrkvun9VPVGOVwbbbBF/Ev1cXz12lyEZMoJpIJABOfPcN9gDJRaiKF9MVbSygLg4NXu3/A=="], "bundle-require": ["bundle-require@5.1.0", "", { "dependencies": { "load-tsconfig": "^0.2.3" }, "peerDependencies": { "esbuild": ">=0.18" } }, "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA=="], @@ -368,7 +394,7 @@ "check-error": ["check-error@2.1.1", "", {}, "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw=="], - "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], "clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="], @@ -392,11 +418,15 @@ "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + + "consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], + "constant-case": ["constant-case@2.0.0", "", { "dependencies": { "snake-case": "^2.1.0", "upper-case": "^1.1.1" } }, "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ=="], "cookie": ["cookie@1.0.2", "", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], - "core-js-pure": ["core-js-pure@3.41.0", "", {}, "sha512-71Gzp96T9YPk63aUvE5Q5qP+DryB4ZloUZPSOebGM88VNw8VNfvdA7z6kGA8iGOTEzAomsRidp4jXSmUIJsL+Q=="], + "core-js-pure": ["core-js-pure@3.43.0", "", {}, "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA=="], "create-require": ["create-require@1.1.1", "", {}, "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="], @@ -408,7 +438,7 @@ "data-uri-to-buffer": ["data-uri-to-buffer@6.0.2", "", {}, "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="], - "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], "deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="], @@ -428,13 +458,13 @@ "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - "elysia": ["elysia@1.2.25", "", { "dependencies": { "@sinclair/typebox": "^0.34.27", "cookie": "^1.0.2", "memoirist": "^0.3.0", "openapi-types": "^12.1.3" }, "peerDependencies": { "typescript": ">= 5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-WsdQpORJvb4uszzeqYT0lg97knw1iBW1NTzJ1Jm57tiHg+DfAotlWXYbjmvQ039ssV0fYELDHinLLoUazZkEHg=="], + "elysia": ["elysia@1.3.4", "", { "dependencies": { "cookie": "^1.0.2", "exact-mirror": "0.1.2", "fast-decode-uri-component": "^1.0.1" }, "optionalDependencies": { "@sinclair/typebox": "^0.34.33", "openapi-types": "^12.1.3" }, "peerDependencies": { "file-type": ">= 20.0.0", "typescript": ">= 5.0.0" } }, "sha512-kAfM3Zwovy3z255IZgTKVxBw91HbgKhYl3TqrGRdZqqr+Fd+4eKOfvxgaKij22+MZLczPzIHtscAmvfpI3+q/A=="], "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "es-module-lexer": ["es-module-lexer@1.6.0", "", {}, "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ=="], + "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], - "esbuild": ["esbuild@0.25.0", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.0", "@esbuild/android-arm": "0.25.0", "@esbuild/android-arm64": "0.25.0", "@esbuild/android-x64": "0.25.0", "@esbuild/darwin-arm64": "0.25.0", "@esbuild/darwin-x64": "0.25.0", "@esbuild/freebsd-arm64": "0.25.0", "@esbuild/freebsd-x64": "0.25.0", "@esbuild/linux-arm": "0.25.0", "@esbuild/linux-arm64": "0.25.0", "@esbuild/linux-ia32": "0.25.0", "@esbuild/linux-loong64": "0.25.0", "@esbuild/linux-mips64el": "0.25.0", "@esbuild/linux-ppc64": "0.25.0", "@esbuild/linux-riscv64": "0.25.0", "@esbuild/linux-s390x": "0.25.0", "@esbuild/linux-x64": "0.25.0", "@esbuild/netbsd-arm64": "0.25.0", "@esbuild/netbsd-x64": "0.25.0", "@esbuild/openbsd-arm64": "0.25.0", "@esbuild/openbsd-x64": "0.25.0", "@esbuild/sunos-x64": "0.25.0", "@esbuild/win32-arm64": "0.25.0", "@esbuild/win32-ia32": "0.25.0", "@esbuild/win32-x64": "0.25.0" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw=="], + "esbuild": ["esbuild@0.25.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.5", "@esbuild/android-arm": "0.25.5", "@esbuild/android-arm64": "0.25.5", "@esbuild/android-x64": "0.25.5", "@esbuild/darwin-arm64": "0.25.5", "@esbuild/darwin-x64": "0.25.5", "@esbuild/freebsd-arm64": "0.25.5", "@esbuild/freebsd-x64": "0.25.5", "@esbuild/linux-arm": "0.25.5", "@esbuild/linux-arm64": "0.25.5", "@esbuild/linux-ia32": "0.25.5", "@esbuild/linux-loong64": "0.25.5", "@esbuild/linux-mips64el": "0.25.5", "@esbuild/linux-ppc64": "0.25.5", "@esbuild/linux-riscv64": "0.25.5", "@esbuild/linux-s390x": "0.25.5", "@esbuild/linux-x64": "0.25.5", "@esbuild/netbsd-arm64": "0.25.5", "@esbuild/netbsd-x64": "0.25.5", "@esbuild/openbsd-arm64": "0.25.5", "@esbuild/openbsd-x64": "0.25.5", "@esbuild/sunos-x64": "0.25.5", "@esbuild/win32-arm64": "0.25.5", "@esbuild/win32-ia32": "0.25.5", "@esbuild/win32-x64": "0.25.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ=="], "escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], @@ -450,22 +480,32 @@ "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + "exact-mirror": ["exact-mirror@0.1.2", "", { "peerDependencies": { "@sinclair/typebox": "^0.34.15" }, "optionalPeers": ["@sinclair/typebox"] }, "sha512-wFCPCDLmHbKGUb8TOi/IS7jLsgR8WVDGtDK3CzcB4Guf/weq7G+I+DkXiRSZfbemBFOxOINKpraM6ml78vo8Zw=="], + "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], "expect-type": ["expect-type@1.2.1", "", {}, "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw=="], "external-editor": ["external-editor@3.1.0", "", { "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew=="], + "fast-decode-uri-component": ["fast-decode-uri-component@1.0.1", "", {}, "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg=="], + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], + "fdir": ["fdir@6.4.6", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w=="], + "fflate": ["fflate@0.8.2", "", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="], "figures": ["figures@3.2.0", "", { "dependencies": { "escape-string-regexp": "^1.0.5" } }, "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg=="], + "file-type": ["file-type@21.0.0", "", { "dependencies": { "@tokenizer/inflate": "^0.2.7", "strtok3": "^10.2.2", "token-types": "^6.0.0", "uint8array-extras": "^1.4.0" } }, "sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg=="], + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + "fix-dts-default-cjs-exports": ["fix-dts-default-cjs-exports@1.0.1", "", { "dependencies": { "magic-string": "^0.30.17", "mlly": "^1.7.4", "rollup": "^4.34.8" } }, "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg=="], + "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], "fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], @@ -474,7 +514,7 @@ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "fuel-chain": ["fuel-chain@workspace:packages/chain"], + "fuel-chain": ["fuel-chain@workspace:packages/chain", { "devDependencies": { "husky": "5.2.0" } }], "fuels": ["fuels@0.100.0", "", { "dependencies": { "@fuel-ts/abi-coder": "0.100.0", "@fuel-ts/abi-typegen": "0.100.0", "@fuel-ts/account": "0.100.0", "@fuel-ts/address": "0.100.0", "@fuel-ts/contract": "0.100.0", "@fuel-ts/crypto": "0.100.0", "@fuel-ts/errors": "0.100.0", "@fuel-ts/hasher": "0.100.0", "@fuel-ts/math": "0.100.0", "@fuel-ts/program": "0.100.0", "@fuel-ts/recipes": "0.100.0", "@fuel-ts/script": "0.100.0", "@fuel-ts/transactions": "0.100.0", "@fuel-ts/utils": "0.100.0", "@fuel-ts/versions": "0.100.0", "bundle-require": "5.1.0", "chalk": "4", "chokidar": "3.6.0", "commander": "13.1.0", "esbuild": "0.25.0", "glob": "10.4.5", "handlebars": "4.7.8", "joycon": "3.1.1", "lodash.camelcase": "4.3.0", "portfinder": "1.0.32", "toml": "3.0.0", "uglify-js": "3.19.3", "yup": "1.6.1" }, "bin": { "fuels": "fuels.js" } }, "sha512-xhoCmKEQLnGgDOJ0s+P2E2ii0e/51+Me34VsoAwZIXjITl5dprIv6osP2lWF87MssbQJYJ6njBbSPnWmM/rN+g=="], @@ -576,6 +616,10 @@ "jsonfile": ["jsonfile@6.1.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ=="], + "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + "load-tsconfig": ["load-tsconfig@0.2.5", "", {}, "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg=="], "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], @@ -584,6 +628,8 @@ "lodash.get": ["lodash.get@4.4.2", "", {}, "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="], + "lodash.sortby": ["lodash.sortby@4.7.0", "", {}, "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA=="], + "log-symbols": ["log-symbols@3.0.0", "", { "dependencies": { "chalk": "^2.4.2" } }, "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ=="], "loupe": ["loupe@3.1.3", "", {}, "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug=="], @@ -598,8 +644,6 @@ "make-error": ["make-error@1.3.6", "", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="], - "memoirist": ["memoirist@0.3.0", "", {}, "sha512-wR+4chMgVPq+T6OOsk40u9Wlpw1Pjx66NMNiYxCQQ4EUJ7jDs3D9kTCeKdBOkvAiqXlHLVJlvYL01PvIJ1MPNg=="], - "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], @@ -616,11 +660,15 @@ "mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="], + "mlly": ["mlly@1.7.4", "", { "dependencies": { "acorn": "^8.14.0", "pathe": "^2.0.1", "pkg-types": "^1.3.0", "ufo": "^1.5.4" } }, "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw=="], + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], "mute-stream": ["mute-stream@0.0.8", "", {}, "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="], - "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], + + "nanoid": ["nanoid@5.1.5", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw=="], "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], @@ -636,6 +684,8 @@ "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], @@ -670,17 +720,23 @@ "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], - "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "pathe": ["pathe@1.1.2", "", {}, "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="], "pathval": ["pathval@2.0.0", "", {}, "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA=="], - "picocolors": ["picocolors@1.0.1", "", {}, "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.2", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="], - "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + + "pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], "portfinder": ["portfinder@1.0.32", "", { "dependencies": { "async": "^2.6.4", "debug": "^3.2.7", "mkdirp": "^0.5.6" } }, "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg=="], - "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], + "postcss": ["postcss@8.5.5", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg=="], + + "postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="], "property-expr": ["property-expr@2.0.6", "", {}, "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA=="], @@ -688,6 +744,8 @@ "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], "ramda": ["ramda@0.30.1", "", {}, "sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw=="], @@ -700,9 +758,7 @@ "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], - - "regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="], + "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], "registry-auth-token": ["registry-auth-token@3.3.2", "", { "dependencies": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" } }, "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ=="], @@ -710,13 +766,15 @@ "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="], + "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], + "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], "rimraf": ["rimraf@5.0.10", "", { "dependencies": { "glob": "^10.3.7" }, "bin": { "rimraf": "dist/esm/bin.mjs" } }, "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ=="], - "rollup": ["rollup@4.40.0", "", { "dependencies": { "@types/estree": "1.0.7" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.40.0", "@rollup/rollup-android-arm64": "4.40.0", "@rollup/rollup-darwin-arm64": "4.40.0", "@rollup/rollup-darwin-x64": "4.40.0", "@rollup/rollup-freebsd-arm64": "4.40.0", "@rollup/rollup-freebsd-x64": "4.40.0", "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", "@rollup/rollup-linux-arm-musleabihf": "4.40.0", "@rollup/rollup-linux-arm64-gnu": "4.40.0", "@rollup/rollup-linux-arm64-musl": "4.40.0", "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", "@rollup/rollup-linux-riscv64-gnu": "4.40.0", "@rollup/rollup-linux-riscv64-musl": "4.40.0", "@rollup/rollup-linux-s390x-gnu": "4.40.0", "@rollup/rollup-linux-x64-gnu": "4.40.0", "@rollup/rollup-linux-x64-musl": "4.40.0", "@rollup/rollup-win32-arm64-msvc": "4.40.0", "@rollup/rollup-win32-ia32-msvc": "4.40.0", "@rollup/rollup-win32-x64-msvc": "4.40.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w=="], + "rollup": ["rollup@4.43.0", "", { "dependencies": { "@types/estree": "1.0.7" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.43.0", "@rollup/rollup-android-arm64": "4.43.0", "@rollup/rollup-darwin-arm64": "4.43.0", "@rollup/rollup-darwin-x64": "4.43.0", "@rollup/rollup-freebsd-arm64": "4.43.0", "@rollup/rollup-freebsd-x64": "4.43.0", "@rollup/rollup-linux-arm-gnueabihf": "4.43.0", "@rollup/rollup-linux-arm-musleabihf": "4.43.0", "@rollup/rollup-linux-arm64-gnu": "4.43.0", "@rollup/rollup-linux-arm64-musl": "4.43.0", "@rollup/rollup-linux-loongarch64-gnu": "4.43.0", "@rollup/rollup-linux-powerpc64le-gnu": "4.43.0", "@rollup/rollup-linux-riscv64-gnu": "4.43.0", "@rollup/rollup-linux-riscv64-musl": "4.43.0", "@rollup/rollup-linux-s390x-gnu": "4.43.0", "@rollup/rollup-linux-x64-gnu": "4.43.0", "@rollup/rollup-linux-x64-musl": "4.43.0", "@rollup/rollup-win32-arm64-msvc": "4.43.0", "@rollup/rollup-win32-ia32-msvc": "4.43.0", "@rollup/rollup-win32-x64-msvc": "4.43.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg=="], "run-async": ["run-async@2.4.1", "", {}, "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="], @@ -734,7 +792,7 @@ "sentence-case": ["sentence-case@2.1.1", "", { "dependencies": { "no-case": "^2.2.0", "upper-case-first": "^1.1.2" } }, "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ=="], - "server": ["server@workspace:apps/server"], + "server": ["server@workspace:apps/server", { "dependencies": { "@elysiajs/cors": "^1.2.0", "@elysiajs/swagger": "^1.2.2", "@kombination/env": "packages/env" }, "devDependencies": { "@types/bun": "latest" }, "peerDependencies": { "elysia": "^1.2.25", "typescript": "^5" } }], "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], @@ -750,11 +808,11 @@ "snake-case": ["snake-case@2.1.0", "", { "dependencies": { "no-case": "^2.2.0" } }, "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q=="], - "socks": ["socks@2.8.4", "", { "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" } }, "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ=="], + "socks": ["socks@2.8.5", "", { "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" } }, "sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww=="], "socks-proxy-agent": ["socks-proxy-agent@8.0.5", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" } }, "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw=="], - "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "source-map": ["source-map@0.8.0-beta.0", "", { "dependencies": { "whatwg-url": "^7.0.0" } }, "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], @@ -778,12 +836,20 @@ "strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], + "strtok3": ["strtok3@10.3.1", "", { "dependencies": { "@tokenizer/token": "^0.3.0" } }, "sha512-3JWEZM6mfix/GCJBBUrkA8p2Id2pBkyTkVCJKto55w080QBKZ+8R171fGrbiSp+yMO/u6F8/yUh7K4V9K+YCnw=="], + + "sucrase": ["sucrase@3.35.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA=="], + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], "swap-case": ["swap-case@1.1.2", "", { "dependencies": { "lower-case": "^1.1.1", "upper-case": "^1.1.1" } }, "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ=="], + "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], + + "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], + "through": ["through@2.3.8", "", {}, "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="], "tiny-case": ["tiny-case@1.0.3", "", {}, "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q=="], @@ -794,9 +860,11 @@ "tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + "tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="], + "tinygradient": ["tinygradient@1.1.5", "", { "dependencies": { "@types/tinycolor2": "^1.4.0", "tinycolor2": "^1.0.0" } }, "sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw=="], - "tinypool": ["tinypool@1.0.2", "", {}, "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA=="], + "tinypool": ["tinypool@1.1.0", "", {}, "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ=="], "tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="], @@ -808,37 +876,49 @@ "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + "token-types": ["token-types@6.0.0", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA=="], + "toml": ["toml@3.0.0", "", {}, "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w=="], "toposort": ["toposort@2.0.2", "", {}, "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="], - "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "tr46": ["tr46@1.0.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA=="], + + "tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], + + "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], "ts-node": ["ts-node@10.9.2", "", { "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", "@tsconfig/node16": "^1.0.2", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, "optionalPeers": ["@swc/core", "@swc/wasm"], "bin": { "ts-node": "dist/bin.js", "ts-script": "dist/bin-script-deprecated.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js" } }, "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="], "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "turbo": ["turbo@2.4.4", "", { "optionalDependencies": { "turbo-darwin-64": "2.4.4", "turbo-darwin-arm64": "2.4.4", "turbo-linux-64": "2.4.4", "turbo-linux-arm64": "2.4.4", "turbo-windows-64": "2.4.4", "turbo-windows-arm64": "2.4.4" }, "bin": { "turbo": "bin/turbo" } }, "sha512-N9FDOVaY3yz0YCOhYIgOGYad7+m2ptvinXygw27WPLQvcZDl3+0Sa77KGVlLSiuPDChOUEnTKE9VJwLSi9BPGQ=="], + "tsup": ["tsup@8.5.0", "", { "dependencies": { "bundle-require": "^5.1.0", "cac": "^6.7.14", "chokidar": "^4.0.3", "consola": "^3.4.0", "debug": "^4.4.0", "esbuild": "^0.25.0", "fix-dts-default-cjs-exports": "^1.0.0", "joycon": "^3.1.1", "picocolors": "^1.1.1", "postcss-load-config": "^6.0.1", "resolve-from": "^5.0.0", "rollup": "^4.34.8", "source-map": "0.8.0-beta.0", "sucrase": "^3.35.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.11", "tree-kill": "^1.2.2" }, "peerDependencies": { "@microsoft/api-extractor": "^7.36.0", "@swc/core": "^1", "postcss": "^8.4.12", "typescript": ">=4.5.0" }, "optionalPeers": ["@microsoft/api-extractor", "@swc/core", "postcss", "typescript"], "bin": { "tsup": "dist/cli-default.js", "tsup-node": "dist/cli-node.js" } }, "sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ=="], + + "turbo": ["turbo@2.5.4", "", { "optionalDependencies": { "turbo-darwin-64": "2.5.4", "turbo-darwin-arm64": "2.5.4", "turbo-linux-64": "2.5.4", "turbo-linux-arm64": "2.5.4", "turbo-windows-64": "2.5.4", "turbo-windows-arm64": "2.5.4" }, "bin": { "turbo": "bin/turbo" } }, "sha512-kc8ZibdRcuWUG1pbYSBFWqmIjynlD8Lp7IB6U3vIzvOv9VG+6Sp8bzyeBWE3Oi8XV5KsQrznyRTBPvrf99E4mA=="], - "turbo-darwin-64": ["turbo-darwin-64@2.4.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-5kPvRkLAfmWI0MH96D+/THnDMGXlFNmjeqNRj5grLKiry+M9pKj3pRuScddAXPdlxjO5Ptz06UNaOQrrYGTx1g=="], + "turbo-darwin-64": ["turbo-darwin-64@2.5.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ=="], - "turbo-darwin-arm64": ["turbo-darwin-arm64@2.4.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-/gtHPqbGQXDFhrmy+Q/MFW2HUTUlThJ97WLLSe4bxkDrKHecDYhAjbZ4rN3MM93RV9STQb3Tqy4pZBtsd4DfCw=="], + "turbo-darwin-arm64": ["turbo-darwin-arm64@2.5.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-2+Nx6LAyuXw2MdXb7pxqle3MYignLvS7OwtsP9SgtSBaMlnNlxl9BovzqdYAgkUW3AsYiQMJ/wBRb7d+xemM5A=="], - "turbo-linux-64": ["turbo-linux-64@2.4.4", "", { "os": "linux", "cpu": "x64" }, "sha512-SR0gri4k0bda56hw5u9VgDXLKb1Q+jrw4lM7WAhnNdXvVoep4d6LmnzgMHQQR12Wxl3KyWPbkz9d1whL6NTm2Q=="], + "turbo-linux-64": ["turbo-linux-64@2.5.4", "", { "os": "linux", "cpu": "x64" }, "sha512-5May2kjWbc8w4XxswGAl74GZ5eM4Gr6IiroqdLhXeXyfvWEdm2mFYCSWOzz0/z5cAgqyGidF1jt1qzUR8hTmOA=="], - "turbo-linux-arm64": ["turbo-linux-arm64@2.4.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-COXXwzRd3vslQIfJhXUklgEqlwq35uFUZ7hnN+AUyXx7hUOLIiD5NblL+ETrHnhY4TzWszrbwUMfe2BYWtaPQg=="], + "turbo-linux-arm64": ["turbo-linux-arm64@2.5.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-/2yqFaS3TbfxV3P5yG2JUI79P7OUQKOUvAnx4MV9Bdz6jqHsHwc9WZPpO4QseQm+NvmgY6ICORnoVPODxGUiJg=="], - "turbo-windows-64": ["turbo-windows-64@2.4.4", "", { "os": "win32", "cpu": "x64" }, "sha512-PV9rYNouGz4Ff3fd6sIfQy5L7HT9a4fcZoEv8PKRavU9O75G7PoDtm8scpHU10QnK0QQNLbE9qNxOAeRvF0fJg=="], + "turbo-windows-64": ["turbo-windows-64@2.5.4", "", { "os": "win32", "cpu": "x64" }, "sha512-EQUO4SmaCDhO6zYohxIjJpOKRN3wlfU7jMAj3CgcyTPvQR/UFLEKAYHqJOnJtymbQmiiM/ihX6c6W6Uq0yC7mA=="], - "turbo-windows-arm64": ["turbo-windows-arm64@2.4.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-403sqp9t5sx6YGEC32IfZTVWkRAixOQomGYB8kEc6ZD+//LirSxzeCHCnM8EmSXw7l57U1G+Fb0kxgTcKPU/Lg=="], + "turbo-windows-arm64": ["turbo-windows-arm64@2.5.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-oQ8RrK1VS8lrxkLriotFq+PiF7iiGgkZtfLKF4DDKsmdbPo0O9R2mQxm7jHLuXraRCuIQDWMIw6dpcr7Iykf4A=="], "type-fest": ["type-fest@4.34.1", "", {}, "sha512-6kSc32kT0rbwxD6QL1CYe8IqdzN/J/ILMrNK+HMQCKH3insCDRY/3ITb0vcBss0a3t72fzh2YSzj8ko1HgwT3g=="], "typescript": ["typescript@5.8.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ=="], + "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], + "uglify-js": ["uglify-js@3.19.3", "", { "bin": { "uglifyjs": "bin/uglifyjs" } }, "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ=="], - "undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="], + "uint8array-extras": ["uint8array-extras@1.4.0", "", {}, "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], @@ -854,17 +934,17 @@ "validate-npm-package-name": ["validate-npm-package-name@5.0.1", "", {}, "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ=="], - "vite": ["vite@6.2.6", "", { "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw=="], + "vite": ["vite@6.3.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ=="], - "vite-node": ["vite-node@3.1.1", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.0", "es-module-lexer": "^1.6.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w=="], + "vite-node": ["vite-node@3.0.5", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.0", "es-module-lexer": "^1.6.0", "pathe": "^2.0.2", "vite": "^5.0.0 || ^6.0.0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A=="], - "vitest": ["vitest@3.1.1", "", { "dependencies": { "@vitest/expect": "3.1.1", "@vitest/mocker": "3.1.1", "@vitest/pretty-format": "^3.1.1", "@vitest/runner": "3.1.1", "@vitest/snapshot": "3.1.1", "@vitest/spy": "3.1.1", "@vitest/utils": "3.1.1", "chai": "^5.2.0", "debug": "^4.4.0", "expect-type": "^1.2.0", "magic-string": "^0.30.17", "pathe": "^2.0.3", "std-env": "^3.8.1", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinypool": "^1.0.2", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", "vite-node": "3.1.1", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.1.1", "@vitest/ui": "3.1.1", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q=="], + "vitest": ["vitest@3.0.5", "", { "dependencies": { "@vitest/expect": "3.0.5", "@vitest/mocker": "3.0.5", "@vitest/pretty-format": "^3.0.5", "@vitest/runner": "3.0.5", "@vitest/snapshot": "3.0.5", "@vitest/spy": "3.0.5", "@vitest/utils": "3.0.5", "chai": "^5.1.2", "debug": "^4.4.0", "expect-type": "^1.1.0", "magic-string": "^0.30.17", "pathe": "^2.0.2", "std-env": "^3.8.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinypool": "^1.0.2", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", "vite-node": "3.0.5", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.0.5", "@vitest/ui": "3.0.5", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-4dof+HvqONw9bvsYxtkfUp2uHsTN9bV2CZIi1pWgoFpL1Lld8LA1ka9q/ONSsoScAKG7NVGf2stJTI7XRkXb2Q=="], "wcwidth": ["wcwidth@1.0.1", "", { "dependencies": { "defaults": "^1.0.3" } }, "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="], - "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + "webidl-conversions": ["webidl-conversions@4.0.2", "", {}, "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="], - "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "whatwg-url": ["whatwg-url@7.1.0", "", { "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", "webidl-conversions": "^4.0.2" } }, "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg=="], "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], @@ -884,11 +964,9 @@ "zhead": ["zhead@2.2.4", "", {}, "sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag=="], - "zod": ["zod@3.24.2", "", {}, "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ=="], - - "@elysiajs/swagger/pathe": ["pathe@1.1.2", "", {}, "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="], + "zod": ["zod@3.25.64", "", {}, "sha512-hbP9FpSZf7pkS7hRVUrOjhwKJNyampPgtXKc3AN6DsWtoHsg2Sb4SQaS4Tcay380zSwd2VPo9G9180emBACp5g=="], - "@fuel-ts/utils/vitest": ["vitest@3.0.9", "", { "dependencies": { "@vitest/expect": "3.0.9", "@vitest/mocker": "3.0.9", "@vitest/pretty-format": "^3.0.9", "@vitest/runner": "3.0.9", "@vitest/snapshot": "3.0.9", "@vitest/spy": "3.0.9", "@vitest/utils": "3.0.9", "chai": "^5.2.0", "debug": "^4.4.0", "expect-type": "^1.1.0", "magic-string": "^0.30.17", "pathe": "^2.0.3", "std-env": "^3.8.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinypool": "^1.0.2", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", "vite-node": "3.0.9", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.0.9", "@vitest/ui": "3.0.9", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ=="], + "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], @@ -896,26 +974,54 @@ "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], - "@scalar/themes/@scalar/types": ["@scalar/types@0.1.5", "", { "dependencies": { "@scalar/openapi-types": "0.2.0", "@unhead/schema": "^1.11.11", "nanoid": "^5.1.5", "type-fest": "^4.20.0", "zod": "^3.23.8" } }, "sha512-xlzatZ703JuxZOiU8eudaz/PbcgRqtBBmpIjpd2fjU50riuu1G4jbQEEMkQajaz11LhGpb4bgrNI0YvE6+Cx4g=="], + "@scalar/themes/@scalar/types": ["@scalar/types@0.1.7", "", { "dependencies": { "@scalar/openapi-types": "0.2.0", "@unhead/schema": "^1.11.11", "nanoid": "^5.1.5", "type-fest": "^4.20.0", "zod": "^3.23.8" } }, "sha512-irIDYzTQG2KLvFbuTI8k2Pz/R4JR+zUUSykVTbEMatkzMmVFnn1VzNSMlODbadycwZunbnL2tA27AXed9URVjw=="], "@turbo/gen/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], + "@turbo/gen/picocolors": ["picocolors@1.0.1", "", {}, "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="], + "@turbo/workspaces/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], + "@turbo/workspaces/picocolors": ["picocolors@1.0.1", "", {}, "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="], + "@types/inquirer/rxjs": ["rxjs@6.6.7", "", { "dependencies": { "tslib": "^1.9.0" } }, "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ=="], + "@vitest/runner/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "@vitest/snapshot/@vitest/pretty-format": ["@vitest/pretty-format@3.0.5", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA=="], + + "@vitest/snapshot/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@3.0.5", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA=="], + "ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], + "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "del/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], + "escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "execa/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + "fuels/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "fuels/esbuild": ["esbuild@0.25.0", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.0", "@esbuild/android-arm": "0.25.0", "@esbuild/android-arm64": "0.25.0", "@esbuild/android-x64": "0.25.0", "@esbuild/darwin-arm64": "0.25.0", "@esbuild/darwin-x64": "0.25.0", "@esbuild/freebsd-arm64": "0.25.0", "@esbuild/freebsd-x64": "0.25.0", "@esbuild/linux-arm": "0.25.0", "@esbuild/linux-arm64": "0.25.0", "@esbuild/linux-ia32": "0.25.0", "@esbuild/linux-loong64": "0.25.0", "@esbuild/linux-mips64el": "0.25.0", "@esbuild/linux-ppc64": "0.25.0", "@esbuild/linux-riscv64": "0.25.0", "@esbuild/linux-s390x": "0.25.0", "@esbuild/linux-x64": "0.25.0", "@esbuild/netbsd-arm64": "0.25.0", "@esbuild/netbsd-x64": "0.25.0", "@esbuild/openbsd-arm64": "0.25.0", "@esbuild/openbsd-x64": "0.25.0", "@esbuild/sunos-x64": "0.25.0", "@esbuild/win32-arm64": "0.25.0", "@esbuild/win32-ia32": "0.25.0", "@esbuild/win32-x64": "0.25.0" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw=="], + "globby/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "handlebars/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "inquirer/ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="], "log-symbols/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "mlly/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "node-plop/inquirer": ["inquirer@7.3.3", "", { "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" } }, "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA=="], "node-plop/mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="], @@ -924,33 +1030,23 @@ "path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "pkg-types/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "portfinder/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], "portfinder/mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="], - "postcss/picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "postcss/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], "restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "server/@types/bun": ["@types/bun@1.2.8", "", { "dependencies": { "bun-types": "1.2.7" } }, "sha512-t8L1RvJVUghW5V+M/fL3Thbxcs0HwNsXsnTEBEfEVqGteiJToOlZ/fyOEaR1kZsNqnu+3XA4RI/qmnX4w6+S+w=="], + "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], - "vite/esbuild": ["esbuild@0.25.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.1", "@esbuild/android-arm": "0.25.1", "@esbuild/android-arm64": "0.25.1", "@esbuild/android-x64": "0.25.1", "@esbuild/darwin-arm64": "0.25.1", "@esbuild/darwin-x64": "0.25.1", "@esbuild/freebsd-arm64": "0.25.1", "@esbuild/freebsd-x64": "0.25.1", "@esbuild/linux-arm": "0.25.1", "@esbuild/linux-arm64": "0.25.1", "@esbuild/linux-ia32": "0.25.1", "@esbuild/linux-loong64": "0.25.1", "@esbuild/linux-mips64el": "0.25.1", "@esbuild/linux-ppc64": "0.25.1", "@esbuild/linux-riscv64": "0.25.1", "@esbuild/linux-s390x": "0.25.1", "@esbuild/linux-x64": "0.25.1", "@esbuild/netbsd-arm64": "0.25.1", "@esbuild/netbsd-x64": "0.25.1", "@esbuild/openbsd-arm64": "0.25.1", "@esbuild/openbsd-x64": "0.25.1", "@esbuild/sunos-x64": "0.25.1", "@esbuild/win32-arm64": "0.25.1", "@esbuild/win32-ia32": "0.25.1", "@esbuild/win32-x64": "0.25.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ=="], + "vite-node/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], - "yup/type-fest": ["type-fest@2.19.0", "", {}, "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="], + "vitest/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], - "@fuel-ts/utils/vitest/@vitest/expect": ["@vitest/expect@3.0.9", "", { "dependencies": { "@vitest/spy": "3.0.9", "@vitest/utils": "3.0.9", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" } }, "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig=="], - - "@fuel-ts/utils/vitest/@vitest/mocker": ["@vitest/mocker@3.0.9", "", { "dependencies": { "@vitest/spy": "3.0.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0 || ^6.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA=="], - - "@fuel-ts/utils/vitest/@vitest/runner": ["@vitest/runner@3.0.9", "", { "dependencies": { "@vitest/utils": "3.0.9", "pathe": "^2.0.3" } }, "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw=="], - - "@fuel-ts/utils/vitest/@vitest/snapshot": ["@vitest/snapshot@3.0.9", "", { "dependencies": { "@vitest/pretty-format": "3.0.9", "magic-string": "^0.30.17", "pathe": "^2.0.3" } }, "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A=="], - - "@fuel-ts/utils/vitest/@vitest/spy": ["@vitest/spy@3.0.9", "", { "dependencies": { "tinyspy": "^3.0.2" } }, "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ=="], - - "@fuel-ts/utils/vitest/@vitest/utils": ["@vitest/utils@3.0.9", "", { "dependencies": { "@vitest/pretty-format": "3.0.9", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" } }, "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng=="], - - "@fuel-ts/utils/vitest/vite-node": ["vite-node@3.0.9", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.0", "es-module-lexer": "^1.6.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg=="], + "yup/type-fest": ["type-fest@2.19.0", "", {}, "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="], "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], @@ -960,83 +1056,81 @@ "@scalar/themes/@scalar/types/@scalar/openapi-types": ["@scalar/openapi-types@0.2.0", "", { "dependencies": { "zod": "^3.23.8" } }, "sha512-waiKk12cRCqyUCWTOX0K1WEVX46+hVUK+zRPzAahDJ7G0TApvbNkuy5wx7aoUyEk++HHde0XuQnshXnt8jsddA=="], - "@scalar/themes/@scalar/types/nanoid": ["nanoid@5.1.5", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw=="], - - "@scalar/themes/@scalar/types/type-fest": ["type-fest@4.39.0", "", {}, "sha512-w2IGJU1tIgcrepg9ZJ82d8UmItNQtOFJG0HCUE3SzMokKkTsruVDALl2fAdiEzJlfduoU+VyXJWIIUZ+6jV+nw=="], - "@types/inquirer/rxjs/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], "del/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "globby/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "fuels/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], - "inquirer/ora/log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], + "fuels/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ=="], - "log-symbols/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], + "fuels/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.0", "", { "os": "android", "cpu": "arm" }, "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g=="], - "log-symbols/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], + "fuels/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.0", "", { "os": "android", "cpu": "arm64" }, "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g=="], - "node-plop/inquirer/rxjs": ["rxjs@6.6.7", "", { "dependencies": { "tslib": "^1.9.0" } }, "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ=="], + "fuels/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.0", "", { "os": "android", "cpu": "x64" }, "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg=="], - "server/@types/bun/bun-types": ["bun-types@1.2.7", "", { "dependencies": { "@types/node": "*", "@types/ws": "*" } }, "sha512-P4hHhk7kjF99acXqKvltyuMQ2kf/rzIw3ylEDpCxDS9Xa0X0Yp/gJu/vDCucmWpiur5qJ0lwB2bWzOXa2GlHqA=="], + "fuels/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw=="], - "vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ=="], + "fuels/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg=="], - "vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.1", "", { "os": "android", "cpu": "arm" }, "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q=="], + "fuels/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w=="], - "vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.1", "", { "os": "android", "cpu": "arm64" }, "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA=="], + "fuels/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A=="], - "vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.1", "", { "os": "android", "cpu": "x64" }, "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw=="], + "fuels/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.0", "", { "os": "linux", "cpu": "arm" }, "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg=="], - "vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ=="], + "fuels/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg=="], - "vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA=="], + "fuels/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.0", "", { "os": "linux", "cpu": "ia32" }, "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg=="], - "vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A=="], + "fuels/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.0", "", { "os": "linux", "cpu": "none" }, "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw=="], - "vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww=="], + "fuels/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.0", "", { "os": "linux", "cpu": "none" }, "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ=="], - "vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.1", "", { "os": "linux", "cpu": "arm" }, "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ=="], + "fuels/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw=="], - "vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ=="], + "fuels/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.0", "", { "os": "linux", "cpu": "none" }, "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA=="], - "vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ=="], + "fuels/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA=="], - "vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg=="], + "fuels/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.0", "", { "os": "linux", "cpu": "x64" }, "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw=="], - "vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg=="], + "fuels/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.0", "", { "os": "none", "cpu": "arm64" }, "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw=="], - "vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg=="], + "fuels/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.0", "", { "os": "none", "cpu": "x64" }, "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA=="], - "vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ=="], + "fuels/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.0", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw=="], - "vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ=="], + "fuels/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg=="], - "vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.1", "", { "os": "linux", "cpu": "x64" }, "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA=="], + "fuels/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.0", "", { "os": "sunos", "cpu": "x64" }, "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg=="], - "vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.1", "", { "os": "none", "cpu": "arm64" }, "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g=="], + "fuels/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw=="], - "vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.1", "", { "os": "none", "cpu": "x64" }, "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA=="], + "fuels/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA=="], - "vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg=="], + "fuels/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.0", "", { "os": "win32", "cpu": "x64" }, "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ=="], - "vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw=="], + "globby/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg=="], + "inquirer/ora/log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], - "vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ=="], + "log-symbols/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - "vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A=="], + "log-symbols/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - "vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg=="], + "node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], - "@fuel-ts/utils/vitest/@vitest/snapshot/@vitest/pretty-format": ["@vitest/pretty-format@3.0.9", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA=="], + "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - "@fuel-ts/utils/vitest/@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@3.0.9", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA=="], + "node-plop/inquirer/rxjs": ["rxjs@6.6.7", "", { "dependencies": { "tslib": "^1.9.0" } }, "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ=="], "del/rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "globby/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], + "fuels/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "globby/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], "log-symbols/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], @@ -1044,7 +1138,7 @@ "node-plop/inquirer/rxjs/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - "del/rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], + "del/rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], "log-symbols/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], } diff --git a/packages/contracts/sway/Forc.lock b/packages/contracts/sway/Forc.lock index ef1e9fd..2554ea1 100644 --- a/packages/contracts/sway/Forc.lock +++ b/packages/contracts/sway/Forc.lock @@ -1,13 +1,29 @@ +[[package]] +name = "auction" +source = "member" +dependencies = [ + "std", + "sway_libs", +] + [[package]] name = "kombination_example" source = "member" dependencies = ["std"] [[package]] -name = "kombination_lib" -source = "member" +name = "standards" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.6.0#65e09f95ea8b9476b171a66c8a47108f352fa32c" dependencies = ["std"] [[package]] name = "std" source = "git+https://github.com/fuellabs/sway?tag=v0.67.0#d821dcb0c7edb1d6e2a772f5a1ccefe38902eaec" + +[[package]] +name = "sway_libs" +source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.24.0#e19f96f85ae12426d20adc176b70aa38fd9a2a5b" +dependencies = [ + "standards", + "std", +] diff --git a/packages/contracts/sway/Forc.toml b/packages/contracts/sway/Forc.toml index 0671da9..2e53a48 100644 --- a/packages/contracts/sway/Forc.toml +++ b/packages/contracts/sway/Forc.toml @@ -1,2 +1,2 @@ [workspace] -members = ["./kombination_lib", "./kombination_example"] +members = ["./kombination_example", "./auction"] diff --git a/packages/contracts/sway/auction/.gitignore b/packages/contracts/sway/auction/.gitignore new file mode 100644 index 0000000..77d3844 --- /dev/null +++ b/packages/contracts/sway/auction/.gitignore @@ -0,0 +1,2 @@ +out +target diff --git a/packages/contracts/sway/auction/Forc.toml b/packages/contracts/sway/auction/Forc.toml new file mode 100644 index 0000000..83e5cf0 --- /dev/null +++ b/packages/contracts/sway/auction/Forc.toml @@ -0,0 +1,8 @@ +[project] +authors = ["vitor"] +entry = "main.sw" +license = "Apache-2.0" +name = "auction" + +[dependencies] +sway_libs = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.24.0" } diff --git a/packages/contracts/sway/auction/src/errors.sw b/packages/contracts/sway/auction/src/errors.sw new file mode 100644 index 0000000..e6d3a86 --- /dev/null +++ b/packages/contracts/sway/auction/src/errors.sw @@ -0,0 +1,30 @@ +library; + +mod structs; +use ::structs::{AuctionId}; + +pub enum AuctionError { + /// The auction is not active + AuctionNotActive: (AuctionId), + + /// The auction was not found + AuctionNotFound: (AuctionId), + + /// The bid amount is less than 5% of the current highest bid + BidTooLow: (u64), + + /// The bid amount is less than the initial bid + InitialBidTooLow: (u64), + + /// The caller is not the owner of the contract + NotOwner: (), + + /// The contract is paused + ContractPaused: (), + + /// The auction already exists + AuctionAlreadyExists: (AssetId), + + /// The auction end time is in the past + EndTimeInPast: (u64), +} \ No newline at end of file diff --git a/packages/contracts/sway/auction/src/events.sw b/packages/contracts/sway/auction/src/events.sw new file mode 100644 index 0000000..cee3205 --- /dev/null +++ b/packages/contracts/sway/auction/src/events.sw @@ -0,0 +1,24 @@ +library; + +mod structs; + +use ::structs::{AuctionId}; + +pub struct BidPlacedEvent { + pub auction_id: AuctionId, + pub bidder: Address, + pub amount: u64, +} + +pub struct AuctionStartedEvent { + pub auction_id: AuctionId, + pub asset_id: AssetId, + pub end_time: u64, + pub initial_bid: u64, +} + +pub struct AuctionEndedEvent { + pub auction_id: AuctionId, + pub winner: Address, + pub winning_bid: u64, +} \ No newline at end of file diff --git a/packages/contracts/sway/auction/src/interfaces.sw b/packages/contracts/sway/auction/src/interfaces.sw new file mode 100644 index 0000000..fd8d473 --- /dev/null +++ b/packages/contracts/sway/auction/src/interfaces.sw @@ -0,0 +1,128 @@ +library; + +mod structs; + +use ::structs::{StartAuction, AuctionId}; + +abi KombinationAuction { + /// Place a bid on the auction + /// + /// # Arguments + /// + /// * `auction_id`: The ID of the auction to bid on + /// * `amount`: The amount to bid + /// + /// # Reverts + /// + /// * If the auction is not active + /// * If the auction is not found + /// * If the bid amount is less than 5% to the current highest bid + /// * If the bid amount is less than the initial bid + /// + /// # Events + /// + /// * `BidPlacedEvent`: Emitted when a bid is successfully placed + #[storage(write, read), payable] + fn place_bid(auction_id: AuctionId, amount: u64); + + /// Start a new auction + /// + /// # Arguments + /// + /// * `auction`: The details of the auction to start + /// + /// # Reverts + /// + /// * If the caller is not the owner of the contract + /// * If the contract is paused + /// * If the auction already exists + /// * If the auction end time is in the past + /// * If the initial bid is less than 0 + /// + /// # Events + /// + /// * `AuctionStartedEvent`: Emitted when a new auction is successfully started + /// + /// # Returns + /// + /// * `AuctionId`: The ID of the newly created auction + #[storage(write)] + fn start_auction(auction: StartAuction) -> AuctionId; + + /// End the auction + /// + /// # Arguments + /// + /// * `auction_id`: The ID of the auction to end + /// + /// # Reverts + /// + /// * If the auction is not found + /// * If the auction is not active + /// + /// # Events + /// + /// * `AuctionEndedEvent`: Emitted when the auction is successfully ended + #[storage(write, read)] + fn end_auction(auction_id: AuctionId); + + /// Get the highest bid + /// + /// # Arguments + /// + /// * `auction_id`: The ID of the auction to get the highest bid for + /// + /// # Reverts + /// + /// * If the auction is not found + /// + /// # Returns + /// + /// * `(Address, u64)`: Returns the address of the highest bidder and the highest bid amount + #[storage(read)] + fn get_highest_bid(auction_id: AuctionId) -> (Address, u64); + + /// Check if the auction is active + /// + /// # Arguments + /// + /// * `auction_id`: The ID of the auction to check + /// + /// # Reverts + /// + /// * If the auction is not found + /// + /// # Returns + /// + /// * `bool`: Returns true if the auction is active, false otherwise + /// + #[storage(read)] + fn is_active(auction_id: AuctionId) -> bool; +} + +/// Interface for managing ownership of the contract +abi Ownership { + /// Initializes the contract with an initial owner + /// + /// # Arguments + /// + /// * `owner`: The initial owner of the contract + /// + /// # Events + /// + /// * `OwnershipTransferredEvent`: Emitted when the ownership is successfully transferred + #[storage(read, write)] + fn initialize(owner: Identity); + + /// Transfers ownership of the contract to a new owner + /// + /// # Arguments + /// + /// * `new_owner`: The new owner of the contract + /// + /// # Events + /// + /// * `OwnershipTransferredEvent`: Emitted when the ownership is successfully transferred + #[storage(write)] + fn transfer_ownership(new_owner: Identity); +} diff --git a/packages/contracts/sway/auction/src/main.sw b/packages/contracts/sway/auction/src/main.sw new file mode 100644 index 0000000..423bcc0 --- /dev/null +++ b/packages/contracts/sway/auction/src/main.sw @@ -0,0 +1,133 @@ +contract; + +mod interfaces; +mod events; +mod structs; +mod errors; + +use ::errors::{AuctionError}; +use ::structs::{Auction, AuctionId, StartAuction}; +use ::interfaces::{KombinationAuction, Ownership}; +use ::events::{BidPlacedEvent, AuctionStartedEvent, AuctionEndedEvent}; + +use sway_libs::pausable::*; +use sway_libs::ownership::*; +use sway_libs::reentrancy::*; + +storage { + // Auction owner address + owner: Address = Address::zero(), + + // Auctions map + auctions: StorageMap = StorageMap {}, +} + +fn _get_auction_id(auction: Auction) -> AuctionId { + sha256((auction.asset_id, auction.end_time)) +} + +#[storage(read)] +fn _get_auction(auction_id: AuctionId) -> Auction { + let auction = auctions.get(auction_id).try_read(); + require(auction.is_some(), AuctionError::AuctionNotFound(auction_id)); + auction.unwrap() +} + +impl KombinationAuction for Contract { + #[storage(write, read), payable] + fn place_bid(auction_id: AuctionId, amount: u64) { + reentrancy_guard(); + _require_not_paused(); + } + + #[storage(write, read)] + fn start_auction(payload: StartAuction) -> AuctionId { + only_owner(); + _require_not_paused(); + + let auction_id = _get_auction_id(payload); + + // let already_exists = auctions.get(auction_id).read_slice().unwrap(); + // require(!already_exists, AuctionError::AuctionAlreadyExists(payload.asset_id)); + require(payload.end_time > block_timestamp(), AuctionError::EndTimeInPast(payload.end_time)); + require(payload.initial_bid > 0, AuctionError::InitialBidTooLow(payload.initial_bid)); + + let auction = Auction::new( + payload.asset_id, + payload.end_time, + payload.initial_bid, + ); + + auctions.insert(auction_id, auction); + + log(AuctionStartedEvent { + auction_id, + asset_id: payload.asset_id, + end_time: payload.end_time, + initial_bid: payload.initial_bid, + }); + + auction_id + } + + #[storage(write, read)] + fn end_auction(auction_id: AuctionId) { + only_owner(); + _require_not_paused(); + + let mut auction = _get_auction(auction_id); + + require(auction.active, AuctionError::AuctionNotActive(auction_id)); + + // Logic to finalize the auction, e.g., transfer asset to highest bidder + // ... + + auction.active = false; + auctions.insert(auction_id, auction); + } + + #[storage(read)] + fn get_highest_bid(auction_id: AuctionId) -> (Address, u64) { + let auction = _get_auction(auction_id); + + (auction.highest_bidder, auction.highest_bid) + } + + #[storage(read)] + fn is_active(auction_id: AuctionId) -> bool { + let auction = _get_auction(auction_id); + + auction.active + } +} + +impl Ownership for Contract { + #[storage(read, write)] + fn initialize(owner: Identity) { + initialize_ownership(owner); + } + + #[storage(write)] + fn transfer_ownership(new_owner: Identity) { + transfer_ownership(new_owner); + } +} + +impl Pausable for Contract { + #[storage(write)] + fn pause() { + only_owner(); + _pause(); + } + + #[storage(write)] + fn unpause() { + only_owner(); + _unpause(); + } + + #[storage(read)] + fn is_paused() -> bool { + _is_paused() + } +} diff --git a/packages/contracts/sway/auction/src/structs.sw b/packages/contracts/sway/auction/src/structs.sw new file mode 100644 index 0000000..377e073 --- /dev/null +++ b/packages/contracts/sway/auction/src/structs.sw @@ -0,0 +1,44 @@ +library; + +pub struct StartAuction { + pub end_time: u64, + pub asset_id: AssetId, + pub initial_bid: u64, +} + +pub type AuctionId = b256; + +pub struct Auction { + // Asset being auctioned + pub asset_id: AssetId, + + // time when the auction ends + pub end_time: u64, + + // Initial bid amount + pub initial_bid: u64, + + // Status of the auction + pub active: bool, + + // highest bidder and bid amount + pub highest_bidder: Address, + pub highest_bid: u64, + + // Bidders map with their bid amounts + pub bidders: StorageMap, +} + +impl Auction { + pub fn new(asset_id: AssetId, end_time: u64, initial_bid: u64) -> Self { + Auction { + asset_id, + end_time, + initial_bid, + active: true, + highest_bidder: Address::zero(), + highest_bid: 0, + bidders: StorageMap {}, + } + } +} \ No newline at end of file From 31f999e9c1ddad999ee42ed709938c6cdb64ab8d Mon Sep 17 00:00:00 2001 From: vitor Date: Fri, 4 Jul 2025 23:31:34 -0300 Subject: [PATCH 3/7] fix(contracts): fixes sway build for auction contract --- .vscode/settings.json | 3 + bun.lock | 10 +- fuel-toolchain.toml | 4 +- .../src/artifacts/contracts/Auction.ts | 635 ++++++++++++++++++ .../src/artifacts/contracts/AuctionFactory.ts | 40 ++ .../artifacts/contracts/KombinationExample.ts | 4 +- .../contracts/KombinationExampleFactory.ts | 4 +- .../src/artifacts/contracts/common.ts | 4 +- .../src/artifacts/contracts/index.ts | 6 +- packages/contracts/sway/Forc.lock | 17 +- packages/contracts/sway/auction/Forc.lock | 38 ++ packages/contracts/sway/auction/Forc.toml | 3 +- .../auction/src/{structs.sw => auction.sw} | 13 +- packages/contracts/sway/auction/src/errors.sw | 30 - packages/contracts/sway/auction/src/events.sw | 6 +- .../contracts/sway/auction/src/interfaces.sw | 31 +- packages/contracts/sway/auction/src/main.sw | 71 +- 17 files changed, 808 insertions(+), 111 deletions(-) create mode 100644 packages/contracts/src/artifacts/contracts/Auction.ts create mode 100644 packages/contracts/src/artifacts/contracts/AuctionFactory.ts create mode 100644 packages/contracts/sway/auction/Forc.lock rename packages/contracts/sway/auction/src/{structs.sw => auction.sw} (87%) delete mode 100644 packages/contracts/sway/auction/src/errors.sw diff --git a/.vscode/settings.json b/.vscode/settings.json index bc35387..46894d7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,8 @@ "[typescript]": { "editor.defaultFormatter": "biomejs.biome", "editor.formatOnSave": true + }, + "[sway]": { + "editor.defaultFormatter": "FuelLabs.sway-vscode-plugin" } } diff --git a/bun.lock b/bun.lock index 19e0ea8..9782566 100755 --- a/bun.lock +++ b/bun.lock @@ -292,7 +292,7 @@ "@types/bn.js": ["@types/bn.js@5.1.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w=="], - "@types/bun": ["@types/bun@1.2.16", "", { "dependencies": { "bun-types": "1.2.16" } }, "sha512-1aCZJ/6nSiViw339RsaNhkNoEloLaPzZhxMOYEa7OzRzO41IGg5n/7I43/ZIAW/c+Q6cT12Vf7fOZOoVIzb5BQ=="], + "@types/bun": ["@types/bun@1.2.18", "", { "dependencies": { "bun-types": "1.2.18" } }, "sha512-Xf6RaWVheyemaThV0kUfaAUvCNokFr+bH8Jxp+tTZfx7dAPA8z9ePnP9S9+Vspzuxxx9JRAXhnyccRj3GyCMdQ=="], "@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="], @@ -376,7 +376,7 @@ "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], - "bun-types": ["bun-types@1.2.16", "", { "dependencies": { "@types/node": "*" } }, "sha512-ciXLrHV4PXax9vHvUrkvun9VPVGOVwbbbBF/Ev1cXz12lyEZMoJpIJABOfPcN9gDJRaiKF9MVbSygLg4NXu3/A=="], + "bun-types": ["bun-types@1.2.18", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-04+Eha5NP7Z0A9YgDAzMk5PHR16ZuLVa83b26kH5+cp1qZW4F6FmAURngE7INf4tKOvCE69vYvDEwoNl1tGiWw=="], "bundle-require": ["bundle-require@5.1.0", "", { "dependencies": { "load-tsconfig": "^0.2.3" }, "peerDependencies": { "esbuild": ">=0.18" } }, "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA=="], @@ -668,7 +668,7 @@ "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], - "nanoid": ["nanoid@5.1.5", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw=="], + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], @@ -1036,8 +1036,6 @@ "portfinder/mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="], - "postcss/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - "restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], @@ -1056,6 +1054,8 @@ "@scalar/themes/@scalar/types/@scalar/openapi-types": ["@scalar/openapi-types@0.2.0", "", { "dependencies": { "zod": "^3.23.8" } }, "sha512-waiKk12cRCqyUCWTOX0K1WEVX46+hVUK+zRPzAahDJ7G0TApvbNkuy5wx7aoUyEk++HHde0XuQnshXnt8jsddA=="], + "@scalar/themes/@scalar/types/nanoid": ["nanoid@5.1.5", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw=="], + "@types/inquirer/rxjs/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], "del/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], diff --git a/fuel-toolchain.toml b/fuel-toolchain.toml index 7961dc9..3962e34 100644 --- a/fuel-toolchain.toml +++ b/fuel-toolchain.toml @@ -2,5 +2,5 @@ channel = "testnet" [components] -forc = "0.67.0" -fuel-core = "0.41.9" \ No newline at end of file +forc = "0.68.1" +fuel-core = "0.43.1" \ No newline at end of file diff --git a/packages/contracts/src/artifacts/contracts/Auction.ts b/packages/contracts/src/artifacts/contracts/Auction.ts new file mode 100644 index 0000000..f2596c2 --- /dev/null +++ b/packages/contracts/src/artifacts/contracts/Auction.ts @@ -0,0 +1,635 @@ +/* Autogenerated file. Do not edit manually. */ + +/* eslint-disable max-classes-per-file */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable @typescript-eslint/consistent-type-imports */ + +/* + Fuels version: 0.100.0 + Forc version: 0.68.1 + Fuel-Core version: 0.43.1 +*/ + +import { Contract as __Contract, Interface } from "fuels"; +import type { + Provider, + Account, + StorageSlot, + Address, + BigNumberish, + BN, + FunctionFragment, + InvokeFunction, +} from 'fuels'; + +import type { Enum } from "./common"; + +export enum AccessErrorInput { NotOwner = 'NotOwner' }; +export enum AccessErrorOutput { NotOwner = 'NotOwner' }; +export type AuctionErrorInput = Enum<{ AuctionNotActive: string, AuctionNotFound: string, BidTooLow: BigNumberish, InitialBidTooLow: BigNumberish, NotOwner: undefined, ContractPaused: undefined, AuctionAlreadyExists: AssetIdInput, EndTimeInPast: BigNumberish }>; +export type AuctionErrorOutput = Enum<{ AuctionNotActive: string, AuctionNotFound: string, BidTooLow: BN, InitialBidTooLow: BN, NotOwner: void, ContractPaused: void, AuctionAlreadyExists: AssetIdOutput, EndTimeInPast: BN }>; +export type IdentityInput = Enum<{ Address: AddressInput, ContractId: ContractIdInput }>; +export type IdentityOutput = Enum<{ Address: AddressOutput, ContractId: ContractIdOutput }>; +export enum InitializationErrorInput { CannotReinitialized = 'CannotReinitialized' }; +export enum InitializationErrorOutput { CannotReinitialized = 'CannotReinitialized' }; +export enum PauseErrorInput { Paused = 'Paused', NotPaused = 'NotPaused' }; +export enum PauseErrorOutput { Paused = 'Paused', NotPaused = 'NotPaused' }; +export enum ReentrancyErrorInput { NonReentrant = 'NonReentrant' }; +export enum ReentrancyErrorOutput { NonReentrant = 'NonReentrant' }; + +export type AddressInput = { bits: string }; +export type AddressOutput = AddressInput; +export type AssetIdInput = { bits: string }; +export type AssetIdOutput = AssetIdInput; +export type AuctionStartedEventInput = { auction_id: string, asset_id: AssetIdInput, end_time: BigNumberish, initial_bid: BigNumberish }; +export type AuctionStartedEventOutput = { auction_id: string, asset_id: AssetIdOutput, end_time: BN, initial_bid: BN }; +export type ContractIdInput = { bits: string }; +export type ContractIdOutput = ContractIdInput; +export type OwnershipSetInput = { new_owner: IdentityInput }; +export type OwnershipSetOutput = { new_owner: IdentityOutput }; +export type OwnershipTransferredInput = { new_owner: IdentityInput, previous_owner: IdentityInput }; +export type OwnershipTransferredOutput = { new_owner: IdentityOutput, previous_owner: IdentityOutput }; +export type StartAuctionInput = { end_time: BigNumberish, asset_id: AssetIdInput, initial_bid: BigNumberish }; +export type StartAuctionOutput = { end_time: BN, asset_id: AssetIdOutput, initial_bid: BN }; + +const abi = { + "programType": "contract", + "specVersion": "1", + "encodingVersion": "1", + "concreteTypes": [ + { + "type": "()", + "concreteTypeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + }, + { + "type": "(struct std::address::Address, u64)", + "concreteTypeId": "75bc2ef776cef7c474ec5d62de96601c43abd33f0fb0ffd0cb04e13d16dbc584", + "metadataTypeId": 0 + }, + { + "type": "b256", + "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + }, + { + "type": "bool", + "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903" + }, + { + "type": "enum interfaces::AuctionError", + "concreteTypeId": "473f84a45f129506db1716db12f0172457287f17d0b6c0935324d9339f07a616", + "metadataTypeId": 1 + }, + { + "type": "enum standards::src5::AccessError", + "concreteTypeId": "3f702ea3351c9c1ece2b84048006c8034a24cbc2bad2e740d0412b4172951d3d", + "metadataTypeId": 2 + }, + { + "type": "enum std::identity::Identity", + "concreteTypeId": "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335", + "metadataTypeId": 3 + }, + { + "type": "enum sway_libs::ownership::errors::InitializationError", + "concreteTypeId": "1dfe7feadc1d9667a4351761230f948744068a090fe91b1bc6763a90ed5d3893", + "metadataTypeId": 4 + }, + { + "type": "enum sway_libs::pausable::errors::PauseError", + "concreteTypeId": "8b3afcadf894415a10b09fc3717487e33802c8ffbb030edafe84ca4a71b280bc", + "metadataTypeId": 5 + }, + { + "type": "enum sway_libs::reentrancy::errors::ReentrancyError", + "concreteTypeId": "4d216c57b3357523323f59401c7355785b41bdf832f6e1106272186b94797038", + "metadataTypeId": 6 + }, + { + "type": "struct events::AuctionStartedEvent", + "concreteTypeId": "4019354d52eeef759a21c8172975440be84d757a4480059ed0d5ce08d588a0f3", + "metadataTypeId": 7 + }, + { + "type": "struct interfaces::StartAuction", + "concreteTypeId": "ab30248bb185f18df7dff31d06861bccd4bea762e95fe091f2a869b323450e2b", + "metadataTypeId": 8 + }, + { + "type": "struct sway_libs::ownership::events::OwnershipSet", + "concreteTypeId": "e1ef35033ea9d2956f17c3292dea4a46ce7d61fdf37bbebe03b7b965073f43b5", + "metadataTypeId": 12 + }, + { + "type": "struct sway_libs::ownership::events::OwnershipTransferred", + "concreteTypeId": "b3fffbcb3158d7c010c31b194b60fb7857adb4ad61bdcf4b8b42958951d9f308", + "metadataTypeId": 13 + }, + { + "type": "u64", + "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ], + "metadataTypes": [ + { + "type": "(_, _)", + "metadataTypeId": 0, + "components": [ + { + "name": "__tuple_element", + "typeId": 9 + }, + { + "name": "__tuple_element", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ] + }, + { + "type": "enum interfaces::AuctionError", + "metadataTypeId": 1, + "components": [ + { + "name": "AuctionNotActive", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + }, + { + "name": "AuctionNotFound", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + }, + { + "name": "BidTooLow", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + }, + { + "name": "InitialBidTooLow", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + }, + { + "name": "NotOwner", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + }, + { + "name": "ContractPaused", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + }, + { + "name": "AuctionAlreadyExists", + "typeId": 10 + }, + { + "name": "EndTimeInPast", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ] + }, + { + "type": "enum standards::src5::AccessError", + "metadataTypeId": 2, + "components": [ + { + "name": "NotOwner", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + } + ] + }, + { + "type": "enum std::identity::Identity", + "metadataTypeId": 3, + "components": [ + { + "name": "Address", + "typeId": 9 + }, + { + "name": "ContractId", + "typeId": 11 + } + ] + }, + { + "type": "enum sway_libs::ownership::errors::InitializationError", + "metadataTypeId": 4, + "components": [ + { + "name": "CannotReinitialized", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + } + ] + }, + { + "type": "enum sway_libs::pausable::errors::PauseError", + "metadataTypeId": 5, + "components": [ + { + "name": "Paused", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + }, + { + "name": "NotPaused", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + } + ] + }, + { + "type": "enum sway_libs::reentrancy::errors::ReentrancyError", + "metadataTypeId": 6, + "components": [ + { + "name": "NonReentrant", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + } + ] + }, + { + "type": "struct events::AuctionStartedEvent", + "metadataTypeId": 7, + "components": [ + { + "name": "auction_id", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + }, + { + "name": "asset_id", + "typeId": 10 + }, + { + "name": "end_time", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + }, + { + "name": "initial_bid", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ] + }, + { + "type": "struct interfaces::StartAuction", + "metadataTypeId": 8, + "components": [ + { + "name": "end_time", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + }, + { + "name": "asset_id", + "typeId": 10 + }, + { + "name": "initial_bid", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ] + }, + { + "type": "struct std::address::Address", + "metadataTypeId": 9, + "components": [ + { + "name": "bits", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ] + }, + { + "type": "struct std::asset_id::AssetId", + "metadataTypeId": 10, + "components": [ + { + "name": "bits", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ] + }, + { + "type": "struct std::contract_id::ContractId", + "metadataTypeId": 11, + "components": [ + { + "name": "bits", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ] + }, + { + "type": "struct sway_libs::ownership::events::OwnershipSet", + "metadataTypeId": 12, + "components": [ + { + "name": "new_owner", + "typeId": 3 + } + ] + }, + { + "type": "struct sway_libs::ownership::events::OwnershipTransferred", + "metadataTypeId": 13, + "components": [ + { + "name": "new_owner", + "typeId": 3 + }, + { + "name": "previous_owner", + "typeId": 3 + } + ] + } + ], + "functions": [ + { + "inputs": [ + { + "name": "auction_id", + "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ], + "name": "end_auction", + "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", + "attributes": [ + { + "name": "doc-comment", + "arguments": [ + " Places a bid on an auction." + ] + }, + { + "name": "storage", + "arguments": [ + "write", + "read" + ] + } + ] + }, + { + "inputs": [ + { + "name": "auction_id", + "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ], + "name": "get_highest_bid", + "output": "75bc2ef776cef7c474ec5d62de96601c43abd33f0fb0ffd0cb04e13d16dbc584", + "attributes": [ + { + "name": "doc-comment", + "arguments": [ + " Places a bid on an auction." + ] + }, + { + "name": "storage", + "arguments": [ + "read" + ] + } + ] + }, + { + "inputs": [ + { + "name": "auction_id", + "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ], + "name": "is_active", + "output": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903", + "attributes": [ + { + "name": "doc-comment", + "arguments": [ + " Places a bid on an auction." + ] + }, + { + "name": "storage", + "arguments": [ + "read" + ] + } + ] + }, + { + "inputs": [ + { + "name": "auction_id", + "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + }, + { + "name": "amount", + "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ], + "name": "place_bid", + "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", + "attributes": [ + { + "name": "doc-comment", + "arguments": [ + " Places a bid on an auction." + ] + }, + { + "name": "storage", + "arguments": [ + "write", + "read" + ] + }, + { + "name": "payable", + "arguments": [] + } + ] + }, + { + "inputs": [ + { + "name": "payload", + "concreteTypeId": "ab30248bb185f18df7dff31d06861bccd4bea762e95fe091f2a869b323450e2b" + } + ], + "name": "start_auction", + "output": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b", + "attributes": [ + { + "name": "doc-comment", + "arguments": [ + " Starts a new auction." + ] + }, + { + "name": "storage", + "arguments": [ + "write", + "read" + ] + } + ] + }, + { + "inputs": [ + { + "name": "owner", + "concreteTypeId": "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335" + } + ], + "name": "initialize", + "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", + "attributes": [ + { + "name": "storage", + "arguments": [ + "read", + "write" + ] + } + ] + }, + { + "inputs": [ + { + "name": "new_owner", + "concreteTypeId": "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335" + } + ], + "name": "transfer_ownership", + "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", + "attributes": [ + { + "name": "storage", + "arguments": [ + "write" + ] + } + ] + }, + { + "inputs": [], + "name": "is_paused", + "output": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903", + "attributes": [ + { + "name": "storage", + "arguments": [ + "read" + ] + } + ] + }, + { + "inputs": [], + "name": "pause", + "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", + "attributes": [ + { + "name": "storage", + "arguments": [ + "write" + ] + } + ] + }, + { + "inputs": [], + "name": "unpause", + "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", + "attributes": [ + { + "name": "storage", + "arguments": [ + "write" + ] + } + ] + } + ], + "loggedTypes": [ + { + "logId": "4571204900286667806", + "concreteTypeId": "3f702ea3351c9c1ece2b84048006c8034a24cbc2bad2e740d0412b4172951d3d" + }, + { + "logId": "10032608944051208538", + "concreteTypeId": "8b3afcadf894415a10b09fc3717487e33802c8ffbb030edafe84ca4a71b280bc" + }, + { + "logId": "5133967941730211078", + "concreteTypeId": "473f84a45f129506db1716db12f0172457287f17d0b6c0935324d9339f07a616" + }, + { + "logId": "5557842539076482339", + "concreteTypeId": "4d216c57b3357523323f59401c7355785b41bdf832f6e1106272186b94797038" + }, + { + "logId": "4618781499065298805", + "concreteTypeId": "4019354d52eeef759a21c8172975440be84d757a4480059ed0d5ce08d588a0f3" + }, + { + "logId": "2161305517876418151", + "concreteTypeId": "1dfe7feadc1d9667a4351761230f948744068a090fe91b1bc6763a90ed5d3893" + }, + { + "logId": "16280289466020123285", + "concreteTypeId": "e1ef35033ea9d2956f17c3292dea4a46ce7d61fdf37bbebe03b7b965073f43b5" + }, + { + "logId": "12970362301975156672", + "concreteTypeId": "b3fffbcb3158d7c010c31b194b60fb7857adb4ad61bdcf4b8b42958951d9f308" + } + ], + "messagesTypes": [], + "configurables": [] +}; + +const storageSlots: StorageSlot[] = [ + { + "key": "6189f6fb2b7278c2a5f1b1ebfc35d4838d6c414acd1f700a7cf63bfc75e71a2b", + "value": "0000000000000000000000000000000000000000000000000000000000000000" + } +]; + +export class AuctionInterface extends Interface { + constructor() { + super(abi); + } + + declare functions: { + end_auction: FunctionFragment; + get_highest_bid: FunctionFragment; + is_active: FunctionFragment; + place_bid: FunctionFragment; + start_auction: FunctionFragment; + initialize: FunctionFragment; + transfer_ownership: FunctionFragment; + is_paused: FunctionFragment; + pause: FunctionFragment; + unpause: FunctionFragment; + }; +} + +export class Auction extends __Contract { + static readonly abi = abi; + static readonly storageSlots = storageSlots; + + declare interface: AuctionInterface; + declare functions: { + end_auction: InvokeFunction<[auction_id: string], void>; + get_highest_bid: InvokeFunction<[auction_id: string], [AddressOutput, BN]>; + is_active: InvokeFunction<[auction_id: string], boolean>; + place_bid: InvokeFunction<[auction_id: string, amount: BigNumberish], void>; + start_auction: InvokeFunction<[payload: StartAuctionInput], string>; + initialize: InvokeFunction<[owner: IdentityInput], void>; + transfer_ownership: InvokeFunction<[new_owner: IdentityInput], void>; + is_paused: InvokeFunction<[], boolean>; + pause: InvokeFunction<[], void>; + unpause: InvokeFunction<[], void>; + }; + + constructor( + id: string | Address, + accountOrProvider: Account | Provider, + ) { + super(id, abi, accountOrProvider); + } +} diff --git a/packages/contracts/src/artifacts/contracts/AuctionFactory.ts b/packages/contracts/src/artifacts/contracts/AuctionFactory.ts new file mode 100644 index 0000000..a6e2665 --- /dev/null +++ b/packages/contracts/src/artifacts/contracts/AuctionFactory.ts @@ -0,0 +1,40 @@ +/* Autogenerated file. Do not edit manually. */ + +/* eslint-disable max-classes-per-file */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable @typescript-eslint/consistent-type-imports */ + +/* + Fuels version: 0.100.0 + Forc version: 0.68.1 + Fuel-Core version: 0.43.1 +*/ + +import { ContractFactory as __ContractFactory, decompressBytecode } from "fuels"; +import type { Provider, Account, DeployContractOptions } from "fuels"; + +import { Auction } from "./Auction"; + +const bytecode = decompressBytecode("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"); + +export class AuctionFactory extends __ContractFactory { + + static readonly bytecode = bytecode; + + constructor(accountOrProvider: Account | Provider) { + super( + bytecode, + Auction.abi, + accountOrProvider, + Auction.storageSlots + ); + } + + static deploy ( + wallet: Account, + options: DeployContractOptions = {} + ) { + const factory = new AuctionFactory(wallet); + return factory.deploy(options); + } +} diff --git a/packages/contracts/src/artifacts/contracts/KombinationExample.ts b/packages/contracts/src/artifacts/contracts/KombinationExample.ts index 086bce6..4d1d71d 100644 --- a/packages/contracts/src/artifacts/contracts/KombinationExample.ts +++ b/packages/contracts/src/artifacts/contracts/KombinationExample.ts @@ -6,8 +6,8 @@ /* Fuels version: 0.100.0 - Forc version: 0.67.0 - Fuel-Core version: 0.41.9 + Forc version: 0.68.1 + Fuel-Core version: 0.43.1 */ import { Contract as __Contract, Interface } from "fuels"; diff --git a/packages/contracts/src/artifacts/contracts/KombinationExampleFactory.ts b/packages/contracts/src/artifacts/contracts/KombinationExampleFactory.ts index 5d86c8d..bead6ca 100644 --- a/packages/contracts/src/artifacts/contracts/KombinationExampleFactory.ts +++ b/packages/contracts/src/artifacts/contracts/KombinationExampleFactory.ts @@ -6,8 +6,8 @@ /* Fuels version: 0.100.0 - Forc version: 0.67.0 - Fuel-Core version: 0.41.9 + Forc version: 0.68.1 + Fuel-Core version: 0.43.1 */ import { ContractFactory as __ContractFactory, decompressBytecode } from "fuels"; diff --git a/packages/contracts/src/artifacts/contracts/common.ts b/packages/contracts/src/artifacts/contracts/common.ts index 0b14696..e4184dd 100644 --- a/packages/contracts/src/artifacts/contracts/common.ts +++ b/packages/contracts/src/artifacts/contracts/common.ts @@ -6,8 +6,8 @@ /* Fuels version: 0.100.0 - Forc version: 0.67.0 - Fuel-Core version: 0.41.9 + Forc version: 0.68.1 + Fuel-Core version: 0.43.1 */ /** diff --git a/packages/contracts/src/artifacts/contracts/index.ts b/packages/contracts/src/artifacts/contracts/index.ts index 3c8cfba..6ed10fd 100644 --- a/packages/contracts/src/artifacts/contracts/index.ts +++ b/packages/contracts/src/artifacts/contracts/index.ts @@ -6,9 +6,11 @@ /* Fuels version: 0.100.0 - Forc version: 0.67.0 - Fuel-Core version: 0.41.9 + Forc version: 0.68.1 + Fuel-Core version: 0.43.1 */ export { KombinationExample } from './KombinationExample'; export { KombinationExampleFactory } from './KombinationExampleFactory'; +export { Auction } from './Auction'; +export { AuctionFactory } from './AuctionFactory'; diff --git a/packages/contracts/sway/Forc.lock b/packages/contracts/sway/Forc.lock index 2554ea1..3778e8c 100644 --- a/packages/contracts/sway/Forc.lock +++ b/packages/contracts/sway/Forc.lock @@ -2,6 +2,7 @@ name = "auction" source = "member" dependencies = [ + "standards git+https://github.com/FuelLabs/sway-standards?tag=v0.7.1#1b00ccc05af5886ae3abd07a9a0ce6122738fc48", "std", "sway_libs", ] @@ -13,17 +14,25 @@ dependencies = ["std"] [[package]] name = "standards" -source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.6.0#65e09f95ea8b9476b171a66c8a47108f352fa32c" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.7.0#7d35df95e0b96dc8ad188ab169fbbeeac896aae8" dependencies = ["std"] +[[package]] +name = "standards" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.7.1#1b00ccc05af5886ae3abd07a9a0ce6122738fc48" +dependencies = [ + "std", + "sway_libs", +] + [[package]] name = "std" -source = "git+https://github.com/fuellabs/sway?tag=v0.67.0#d821dcb0c7edb1d6e2a772f5a1ccefe38902eaec" +source = "git+https://github.com/fuellabs/sway?tag=v0.68.1#7e1bc152face6f1ae20b4274d98446100920e573" [[package]] name = "sway_libs" -source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.24.0#e19f96f85ae12426d20adc176b70aa38fd9a2a5b" +source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.25.2#f43d8b4aacf60867989408991414958f8eab28c0" dependencies = [ - "standards", + "standards git+https://github.com/FuelLabs/sway-standards?tag=v0.7.0#7d35df95e0b96dc8ad188ab169fbbeeac896aae8", "std", ] diff --git a/packages/contracts/sway/auction/Forc.lock b/packages/contracts/sway/auction/Forc.lock new file mode 100644 index 0000000..3778e8c --- /dev/null +++ b/packages/contracts/sway/auction/Forc.lock @@ -0,0 +1,38 @@ +[[package]] +name = "auction" +source = "member" +dependencies = [ + "standards git+https://github.com/FuelLabs/sway-standards?tag=v0.7.1#1b00ccc05af5886ae3abd07a9a0ce6122738fc48", + "std", + "sway_libs", +] + +[[package]] +name = "kombination_example" +source = "member" +dependencies = ["std"] + +[[package]] +name = "standards" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.7.0#7d35df95e0b96dc8ad188ab169fbbeeac896aae8" +dependencies = ["std"] + +[[package]] +name = "standards" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.7.1#1b00ccc05af5886ae3abd07a9a0ce6122738fc48" +dependencies = [ + "std", + "sway_libs", +] + +[[package]] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.68.1#7e1bc152face6f1ae20b4274d98446100920e573" + +[[package]] +name = "sway_libs" +source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.25.2#f43d8b4aacf60867989408991414958f8eab28c0" +dependencies = [ + "standards git+https://github.com/FuelLabs/sway-standards?tag=v0.7.0#7d35df95e0b96dc8ad188ab169fbbeeac896aae8", + "std", +] diff --git a/packages/contracts/sway/auction/Forc.toml b/packages/contracts/sway/auction/Forc.toml index 83e5cf0..b83a9e6 100644 --- a/packages/contracts/sway/auction/Forc.toml +++ b/packages/contracts/sway/auction/Forc.toml @@ -5,4 +5,5 @@ license = "Apache-2.0" name = "auction" [dependencies] -sway_libs = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.24.0" } +standards = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.7.1" } +sway_libs = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.25.2" } \ No newline at end of file diff --git a/packages/contracts/sway/auction/src/structs.sw b/packages/contracts/sway/auction/src/auction.sw similarity index 87% rename from packages/contracts/sway/auction/src/structs.sw rename to packages/contracts/sway/auction/src/auction.sw index 377e073..b4891a1 100644 --- a/packages/contracts/sway/auction/src/structs.sw +++ b/packages/contracts/sway/auction/src/auction.sw @@ -1,30 +1,19 @@ library; -pub struct StartAuction { - pub end_time: u64, - pub asset_id: AssetId, - pub initial_bid: u64, -} - pub type AuctionId = b256; pub struct Auction { // Asset being auctioned pub asset_id: AssetId, - // time when the auction ends pub end_time: u64, - // Initial bid amount pub initial_bid: u64, - // Status of the auction pub active: bool, - // highest bidder and bid amount pub highest_bidder: Address, pub highest_bid: u64, - // Bidders map with their bid amounts pub bidders: StorageMap, } @@ -41,4 +30,4 @@ impl Auction { bidders: StorageMap {}, } } -} \ No newline at end of file +} diff --git a/packages/contracts/sway/auction/src/errors.sw b/packages/contracts/sway/auction/src/errors.sw deleted file mode 100644 index e6d3a86..0000000 --- a/packages/contracts/sway/auction/src/errors.sw +++ /dev/null @@ -1,30 +0,0 @@ -library; - -mod structs; -use ::structs::{AuctionId}; - -pub enum AuctionError { - /// The auction is not active - AuctionNotActive: (AuctionId), - - /// The auction was not found - AuctionNotFound: (AuctionId), - - /// The bid amount is less than 5% of the current highest bid - BidTooLow: (u64), - - /// The bid amount is less than the initial bid - InitialBidTooLow: (u64), - - /// The caller is not the owner of the contract - NotOwner: (), - - /// The contract is paused - ContractPaused: (), - - /// The auction already exists - AuctionAlreadyExists: (AssetId), - - /// The auction end time is in the past - EndTimeInPast: (u64), -} \ No newline at end of file diff --git a/packages/contracts/sway/auction/src/events.sw b/packages/contracts/sway/auction/src/events.sw index cee3205..e5048fe 100644 --- a/packages/contracts/sway/auction/src/events.sw +++ b/packages/contracts/sway/auction/src/events.sw @@ -1,8 +1,6 @@ library; -mod structs; - -use ::structs::{AuctionId}; +type AuctionId = b256; pub struct BidPlacedEvent { pub auction_id: AuctionId, @@ -21,4 +19,4 @@ pub struct AuctionEndedEvent { pub auction_id: AuctionId, pub winner: Address, pub winning_bid: u64, -} \ No newline at end of file +} diff --git a/packages/contracts/sway/auction/src/interfaces.sw b/packages/contracts/sway/auction/src/interfaces.sw index fd8d473..a0725ba 100644 --- a/packages/contracts/sway/auction/src/interfaces.sw +++ b/packages/contracts/sway/auction/src/interfaces.sw @@ -1,8 +1,31 @@ library; -mod structs; +pub struct StartAuction { + pub end_time: u64, + pub asset_id: AssetId, + pub initial_bid: u64, +} + +pub type AuctionId = b256; -use ::structs::{StartAuction, AuctionId}; +pub enum AuctionError { + /// The auction is not active + AuctionNotActive: AuctionId, + /// The auction was not found + AuctionNotFound: AuctionId, + /// The bid amount is less than 5% of the current highest bid + BidTooLow: u64, + /// The bid amount is less than the initial bid + InitialBidTooLow: u64, + /// The caller is not the owner of the contract + NotOwner: (), + /// The contract is paused + ContractPaused: (), + /// The auction already exists + AuctionAlreadyExists: AssetId, + /// The auction end time is in the past + EndTimeInPast: u64, +} abi KombinationAuction { /// Place a bid on the auction @@ -46,7 +69,7 @@ abi KombinationAuction { /// # Returns /// /// * `AuctionId`: The ID of the newly created auction - #[storage(write)] + #[storage(write, read)] fn start_auction(auction: StartAuction) -> AuctionId; /// End the auction @@ -89,7 +112,7 @@ abi KombinationAuction { /// * `auction_id`: The ID of the auction to check /// /// # Reverts - /// + /// /// * If the auction is not found /// /// # Returns diff --git a/packages/contracts/sway/auction/src/main.sw b/packages/contracts/sway/auction/src/main.sw index 423bcc0..6eb0c7e 100644 --- a/packages/contracts/sway/auction/src/main.sw +++ b/packages/contracts/sway/auction/src/main.sw @@ -2,101 +2,92 @@ contract; mod interfaces; mod events; -mod structs; -mod errors; +mod auction; -use ::errors::{AuctionError}; -use ::structs::{Auction, AuctionId, StartAuction}; -use ::interfaces::{KombinationAuction, Ownership}; -use ::events::{BidPlacedEvent, AuctionStartedEvent, AuctionEndedEvent}; - -use sway_libs::pausable::*; -use sway_libs::ownership::*; +use sway_libs::pausable::{_is_paused, _pause, _unpause, Pausable, require_not_paused}; +use sway_libs::ownership::{initialize_ownership, only_owner, transfer_ownership}; use sway_libs::reentrancy::*; +use std::hash::sha256; + +use auction::{Auction, AuctionId}; +use interfaces::{AuctionError, KombinationAuction, Ownership, StartAuction}; +use events::{AuctionEndedEvent, AuctionStartedEvent, BidPlacedEvent}; storage { // Auction owner address owner: Address = Address::zero(), - // Auctions map auctions: StorageMap = StorageMap {}, } -fn _get_auction_id(auction: Auction) -> AuctionId { +fn _get_auction_id(auction: StartAuction) -> AuctionId { sha256((auction.asset_id, auction.end_time)) } #[storage(read)] fn _get_auction(auction_id: AuctionId) -> Auction { - let auction = auctions.get(auction_id).try_read(); + let auction = storage.auctions.get(auction_id).try_read(); require(auction.is_some(), AuctionError::AuctionNotFound(auction_id)); auction.unwrap() } impl KombinationAuction for Contract { + /// Places a bid on an auction. #[storage(write, read), payable] fn place_bid(auction_id: AuctionId, amount: u64) { reentrancy_guard(); - _require_not_paused(); + require_not_paused(); } - + /// Starts a new auction. #[storage(write, read)] fn start_auction(payload: StartAuction) -> AuctionId { only_owner(); - _require_not_paused(); - + require_not_paused(); let auction_id = _get_auction_id(payload); - // let already_exists = auctions.get(auction_id).read_slice().unwrap(); // require(!already_exists, AuctionError::AuctionAlreadyExists(payload.asset_id)); - require(payload.end_time > block_timestamp(), AuctionError::EndTimeInPast(payload.end_time)); - require(payload.initial_bid > 0, AuctionError::InitialBidTooLow(payload.initial_bid)); - - let auction = Auction::new( - payload.asset_id, - payload.end_time, - payload.initial_bid, + // require( + // payload + // .end_time > block_timestamp(), + // AuctionError::EndTimeInPast(payload.end_time), + // ); + require( + payload + .initial_bid > 0, + AuctionError::InitialBidTooLow(payload.initial_bid), ); - - auctions.insert(auction_id, auction); - + let auction = Auction::new(payload.asset_id, payload.end_time, payload.initial_bid); + storage.auctions.insert(auction_id, auction); log(AuctionStartedEvent { auction_id, asset_id: payload.asset_id, end_time: payload.end_time, initial_bid: payload.initial_bid, }); - auction_id } - + /// Places a bid on an auction. #[storage(write, read)] fn end_auction(auction_id: AuctionId) { only_owner(); - _require_not_paused(); - + require_not_paused(); let mut auction = _get_auction(auction_id); - require(auction.active, AuctionError::AuctionNotActive(auction_id)); - // Logic to finalize the auction, e.g., transfer asset to highest bidder // ... - auction.active = false; - auctions.insert(auction_id, auction); + storage.auctions.insert(auction_id, auction); } - + /// Places a bid on an auction. #[storage(read)] fn get_highest_bid(auction_id: AuctionId) -> (Address, u64) { let auction = _get_auction(auction_id); - (auction.highest_bidder, auction.highest_bid) } - + /// Places a bid on an auction. #[storage(read)] fn is_active(auction_id: AuctionId) -> bool { let auction = _get_auction(auction_id); - auction.active } } @@ -119,13 +110,11 @@ impl Pausable for Contract { only_owner(); _pause(); } - #[storage(write)] fn unpause() { only_owner(); _unpause(); } - #[storage(read)] fn is_paused() -> bool { _is_paused() From 186b4d3e0cb826a3761871bf112d49eb30b3718c Mon Sep 17 00:00:00 2001 From: vitor Date: Sat, 5 Jul 2025 00:07:27 -0300 Subject: [PATCH 4/7] refactor(auction): update bidder types to use Identity and adjust related logic --- .../contracts/sway/auction/src/auction.sw | 7 ++-- packages/contracts/sway/auction/src/events.sw | 4 +-- .../contracts/sway/auction/src/interfaces.sw | 4 +-- packages/contracts/sway/auction/src/main.sw | 35 +++++++++++++++++-- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/packages/contracts/sway/auction/src/auction.sw b/packages/contracts/sway/auction/src/auction.sw index b4891a1..8a62c54 100644 --- a/packages/contracts/sway/auction/src/auction.sw +++ b/packages/contracts/sway/auction/src/auction.sw @@ -12,10 +12,8 @@ pub struct Auction { // Status of the auction pub active: bool, // highest bidder and bid amount - pub highest_bidder: Address, + pub highest_bidder: Option, pub highest_bid: u64, - // Bidders map with their bid amounts - pub bidders: StorageMap, } impl Auction { @@ -25,9 +23,8 @@ impl Auction { end_time, initial_bid, active: true, - highest_bidder: Address::zero(), + highest_bidder: None, highest_bid: 0, - bidders: StorageMap {}, } } } diff --git a/packages/contracts/sway/auction/src/events.sw b/packages/contracts/sway/auction/src/events.sw index e5048fe..775dfc9 100644 --- a/packages/contracts/sway/auction/src/events.sw +++ b/packages/contracts/sway/auction/src/events.sw @@ -4,7 +4,7 @@ type AuctionId = b256; pub struct BidPlacedEvent { pub auction_id: AuctionId, - pub bidder: Address, + pub bidder: Identity, pub amount: u64, } @@ -17,6 +17,6 @@ pub struct AuctionStartedEvent { pub struct AuctionEndedEvent { pub auction_id: AuctionId, - pub winner: Address, + pub winner: Identity, pub winning_bid: u64, } diff --git a/packages/contracts/sway/auction/src/interfaces.sw b/packages/contracts/sway/auction/src/interfaces.sw index a0725ba..4e53410 100644 --- a/packages/contracts/sway/auction/src/interfaces.sw +++ b/packages/contracts/sway/auction/src/interfaces.sw @@ -101,9 +101,9 @@ abi KombinationAuction { /// /// # Returns /// - /// * `(Address, u64)`: Returns the address of the highest bidder and the highest bid amount + /// * `(Identity, u64)`: Returns the identity of the highest bidder and the highest bid amount #[storage(read)] - fn get_highest_bid(auction_id: AuctionId) -> (Address, u64); + fn get_highest_bid(auction_id: AuctionId) -> (Option, u64); /// Check if the auction is active /// diff --git a/packages/contracts/sway/auction/src/main.sw b/packages/contracts/sway/auction/src/main.sw index 6eb0c7e..81d6377 100644 --- a/packages/contracts/sway/auction/src/main.sw +++ b/packages/contracts/sway/auction/src/main.sw @@ -14,10 +14,10 @@ use interfaces::{AuctionError, KombinationAuction, Ownership, StartAuction}; use events::{AuctionEndedEvent, AuctionStartedEvent, BidPlacedEvent}; storage { - // Auction owner address - owner: Address = Address::zero(), // Auctions map auctions: StorageMap = StorageMap {}, + // Bidders map with their bid amounts + bidders: StorageMap<(AuctionId, Identity), u64> = StorageMap {}, } fn _get_auction_id(auction: StartAuction) -> AuctionId { @@ -37,6 +37,32 @@ impl KombinationAuction for Contract { fn place_bid(auction_id: AuctionId, amount: u64) { reentrancy_guard(); require_not_paused(); + + let mut auction = _get_auction(auction_id); + require(auction.active, AuctionError::AuctionNotActive(auction_id)); + + let highest_bid_with_five_percent = auction.highest_bid + (auction.highest_bid / 20); // 5% of the highest bid + require( + amount > highest_bid_with_five_percent, + AuctionError::BidTooLow(amount), + ); + + const IS_NEW_HIGHEST_BID = amount > auction.highest_bid; + let sender = msg_sender().unwrap(); + + if IS_NEW_HIGHEST_BID { + auction.highest_bidder = Some(sender); + auction.highest_bid = amount; + } + // Add the bidder to the bidders map with their bid amount + storage.bidders.insert((auction_id, sender), amount); + storage.auctions.insert(auction_id, auction); + + log(BidPlacedEvent { + auction_id, + bidder: sender, + amount, + }); } /// Starts a new auction. #[storage(write, read)] @@ -56,7 +82,9 @@ impl KombinationAuction for Contract { .initial_bid > 0, AuctionError::InitialBidTooLow(payload.initial_bid), ); + let auction = Auction::new(payload.asset_id, payload.end_time, payload.initial_bid); + storage.auctions.insert(auction_id, auction); log(AuctionStartedEvent { auction_id, @@ -64,6 +92,7 @@ impl KombinationAuction for Contract { end_time: payload.end_time, initial_bid: payload.initial_bid, }); + auction_id } /// Places a bid on an auction. @@ -80,7 +109,7 @@ impl KombinationAuction for Contract { } /// Places a bid on an auction. #[storage(read)] - fn get_highest_bid(auction_id: AuctionId) -> (Address, u64) { + fn get_highest_bid(auction_id: AuctionId) -> (Option, u64) { let auction = _get_auction(auction_id); (auction.highest_bidder, auction.highest_bid) } From 3ee07dce03036d735dff334694f4e9a190ad32db Mon Sep 17 00:00:00 2001 From: vitor Date: Sat, 5 Jul 2025 00:08:50 -0300 Subject: [PATCH 5/7] fix(contracts): could not evaluate initializer to a const declaration --- .../src/artifacts/contracts/Auction.ts | 119 +++++++++++++----- .../src/artifacts/contracts/AuctionFactory.ts | 2 +- packages/contracts/sway/auction/src/main.sw | 4 +- 3 files changed, 88 insertions(+), 37 deletions(-) diff --git a/packages/contracts/src/artifacts/contracts/Auction.ts b/packages/contracts/src/artifacts/contracts/Auction.ts index f2596c2..4851a55 100644 --- a/packages/contracts/src/artifacts/contracts/Auction.ts +++ b/packages/contracts/src/artifacts/contracts/Auction.ts @@ -22,7 +22,7 @@ import type { InvokeFunction, } from 'fuels'; -import type { Enum } from "./common"; +import type { Option, Enum } from "./common"; export enum AccessErrorInput { NotOwner = 'NotOwner' }; export enum AccessErrorOutput { NotOwner = 'NotOwner' }; @@ -43,6 +43,8 @@ export type AssetIdInput = { bits: string }; export type AssetIdOutput = AssetIdInput; export type AuctionStartedEventInput = { auction_id: string, asset_id: AssetIdInput, end_time: BigNumberish, initial_bid: BigNumberish }; export type AuctionStartedEventOutput = { auction_id: string, asset_id: AssetIdOutput, end_time: BN, initial_bid: BN }; +export type BidPlacedEventInput = { auction_id: string, bidder: IdentityInput, amount: BigNumberish }; +export type BidPlacedEventOutput = { auction_id: string, bidder: IdentityOutput, amount: BN }; export type ContractIdInput = { bits: string }; export type ContractIdOutput = ContractIdInput; export type OwnershipSetInput = { new_owner: IdentityInput }; @@ -62,8 +64,8 @@ const abi = { "concreteTypeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" }, { - "type": "(struct std::address::Address, u64)", - "concreteTypeId": "75bc2ef776cef7c474ec5d62de96601c43abd33f0fb0ffd0cb04e13d16dbc584", + "type": "(enum std::option::Option, u64)", + "concreteTypeId": "a91d546e06c77ca8804aa7b84690cb044064b4bfd04683a1ed0b7c8fc84a16e1", "metadataTypeId": 0 }, { @@ -92,37 +94,42 @@ const abi = { { "type": "enum sway_libs::ownership::errors::InitializationError", "concreteTypeId": "1dfe7feadc1d9667a4351761230f948744068a090fe91b1bc6763a90ed5d3893", - "metadataTypeId": 4 + "metadataTypeId": 5 }, { "type": "enum sway_libs::pausable::errors::PauseError", "concreteTypeId": "8b3afcadf894415a10b09fc3717487e33802c8ffbb030edafe84ca4a71b280bc", - "metadataTypeId": 5 + "metadataTypeId": 6 }, { "type": "enum sway_libs::reentrancy::errors::ReentrancyError", "concreteTypeId": "4d216c57b3357523323f59401c7355785b41bdf832f6e1106272186b94797038", - "metadataTypeId": 6 + "metadataTypeId": 7 }, { "type": "struct events::AuctionStartedEvent", "concreteTypeId": "4019354d52eeef759a21c8172975440be84d757a4480059ed0d5ce08d588a0f3", - "metadataTypeId": 7 + "metadataTypeId": 9 + }, + { + "type": "struct events::BidPlacedEvent", + "concreteTypeId": "5d73cb84063b4854a71ec5fbcff7b0f372509eb4efc7b207184a300becb9d3db", + "metadataTypeId": 10 }, { "type": "struct interfaces::StartAuction", "concreteTypeId": "ab30248bb185f18df7dff31d06861bccd4bea762e95fe091f2a869b323450e2b", - "metadataTypeId": 8 + "metadataTypeId": 11 }, { "type": "struct sway_libs::ownership::events::OwnershipSet", "concreteTypeId": "e1ef35033ea9d2956f17c3292dea4a46ce7d61fdf37bbebe03b7b965073f43b5", - "metadataTypeId": 12 + "metadataTypeId": 15 }, { "type": "struct sway_libs::ownership::events::OwnershipTransferred", "concreteTypeId": "b3fffbcb3158d7c010c31b194b60fb7857adb4ad61bdcf4b8b42958951d9f308", - "metadataTypeId": 13 + "metadataTypeId": 16 }, { "type": "u64", @@ -136,7 +143,13 @@ const abi = { "components": [ { "name": "__tuple_element", - "typeId": 9 + "typeId": 4, + "typeArguments": [ + { + "name": "", + "typeId": 3 + } + ] }, { "name": "__tuple_element", @@ -174,7 +187,7 @@ const abi = { }, { "name": "AuctionAlreadyExists", - "typeId": 10 + "typeId": 13 }, { "name": "EndTimeInPast", @@ -198,17 +211,34 @@ const abi = { "components": [ { "name": "Address", - "typeId": 9 + "typeId": 12 }, { "name": "ContractId", - "typeId": 11 + "typeId": 14 } ] }, { - "type": "enum sway_libs::ownership::errors::InitializationError", + "type": "enum std::option::Option", "metadataTypeId": 4, + "components": [ + { + "name": "None", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + }, + { + "name": "Some", + "typeId": 8 + } + ], + "typeParameters": [ + 8 + ] + }, + { + "type": "enum sway_libs::ownership::errors::InitializationError", + "metadataTypeId": 5, "components": [ { "name": "CannotReinitialized", @@ -218,7 +248,7 @@ const abi = { }, { "type": "enum sway_libs::pausable::errors::PauseError", - "metadataTypeId": 5, + "metadataTypeId": 6, "components": [ { "name": "Paused", @@ -232,7 +262,7 @@ const abi = { }, { "type": "enum sway_libs::reentrancy::errors::ReentrancyError", - "metadataTypeId": 6, + "metadataTypeId": 7, "components": [ { "name": "NonReentrant", @@ -240,9 +270,13 @@ const abi = { } ] }, + { + "type": "generic T", + "metadataTypeId": 8 + }, { "type": "struct events::AuctionStartedEvent", - "metadataTypeId": 7, + "metadataTypeId": 9, "components": [ { "name": "auction_id", @@ -250,7 +284,7 @@ const abi = { }, { "name": "asset_id", - "typeId": 10 + "typeId": 13 }, { "name": "end_time", @@ -262,9 +296,27 @@ const abi = { } ] }, + { + "type": "struct events::BidPlacedEvent", + "metadataTypeId": 10, + "components": [ + { + "name": "auction_id", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + }, + { + "name": "bidder", + "typeId": 3 + }, + { + "name": "amount", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ] + }, { "type": "struct interfaces::StartAuction", - "metadataTypeId": 8, + "metadataTypeId": 11, "components": [ { "name": "end_time", @@ -272,7 +324,7 @@ const abi = { }, { "name": "asset_id", - "typeId": 10 + "typeId": 13 }, { "name": "initial_bid", @@ -282,7 +334,7 @@ const abi = { }, { "type": "struct std::address::Address", - "metadataTypeId": 9, + "metadataTypeId": 12, "components": [ { "name": "bits", @@ -292,7 +344,7 @@ const abi = { }, { "type": "struct std::asset_id::AssetId", - "metadataTypeId": 10, + "metadataTypeId": 13, "components": [ { "name": "bits", @@ -302,7 +354,7 @@ const abi = { }, { "type": "struct std::contract_id::ContractId", - "metadataTypeId": 11, + "metadataTypeId": 14, "components": [ { "name": "bits", @@ -312,7 +364,7 @@ const abi = { }, { "type": "struct sway_libs::ownership::events::OwnershipSet", - "metadataTypeId": 12, + "metadataTypeId": 15, "components": [ { "name": "new_owner", @@ -322,7 +374,7 @@ const abi = { }, { "type": "struct sway_libs::ownership::events::OwnershipTransferred", - "metadataTypeId": 13, + "metadataTypeId": 16, "components": [ { "name": "new_owner", @@ -369,7 +421,7 @@ const abi = { } ], "name": "get_highest_bid", - "output": "75bc2ef776cef7c474ec5d62de96601c43abd33f0fb0ffd0cb04e13d16dbc584", + "output": "a91d546e06c77ca8804aa7b84690cb044064b4bfd04683a1ed0b7c8fc84a16e1", "attributes": [ { "name": "doc-comment", @@ -561,6 +613,10 @@ const abi = { "logId": "5557842539076482339", "concreteTypeId": "4d216c57b3357523323f59401c7355785b41bdf832f6e1106272186b94797038" }, + { + "logId": "6733949635749693524", + "concreteTypeId": "5d73cb84063b4854a71ec5fbcff7b0f372509eb4efc7b207184a300becb9d3db" + }, { "logId": "4618781499065298805", "concreteTypeId": "4019354d52eeef759a21c8172975440be84d757a4480059ed0d5ce08d588a0f3" @@ -582,12 +638,7 @@ const abi = { "configurables": [] }; -const storageSlots: StorageSlot[] = [ - { - "key": "6189f6fb2b7278c2a5f1b1ebfc35d4838d6c414acd1f700a7cf63bfc75e71a2b", - "value": "0000000000000000000000000000000000000000000000000000000000000000" - } -]; +const storageSlots: StorageSlot[] = []; export class AuctionInterface extends Interface { constructor() { @@ -615,7 +666,7 @@ export class Auction extends __Contract { declare interface: AuctionInterface; declare functions: { end_auction: InvokeFunction<[auction_id: string], void>; - get_highest_bid: InvokeFunction<[auction_id: string], [AddressOutput, BN]>; + get_highest_bid: InvokeFunction<[auction_id: string], [Option, BN]>; is_active: InvokeFunction<[auction_id: string], boolean>; place_bid: InvokeFunction<[auction_id: string, amount: BigNumberish], void>; start_auction: InvokeFunction<[payload: StartAuctionInput], string>; diff --git a/packages/contracts/src/artifacts/contracts/AuctionFactory.ts b/packages/contracts/src/artifacts/contracts/AuctionFactory.ts index a6e2665..2fb412f 100644 --- a/packages/contracts/src/artifacts/contracts/AuctionFactory.ts +++ b/packages/contracts/src/artifacts/contracts/AuctionFactory.ts @@ -15,7 +15,7 @@ import type { Provider, Account, DeployContractOptions } from "fuels"; import { Auction } from "./Auction"; -const bytecode = decompressBytecode("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"); +const bytecode = decompressBytecode("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"); export class AuctionFactory extends __ContractFactory { diff --git a/packages/contracts/sway/auction/src/main.sw b/packages/contracts/sway/auction/src/main.sw index 81d6377..585e640 100644 --- a/packages/contracts/sway/auction/src/main.sw +++ b/packages/contracts/sway/auction/src/main.sw @@ -47,10 +47,10 @@ impl KombinationAuction for Contract { AuctionError::BidTooLow(amount), ); - const IS_NEW_HIGHEST_BID = amount > auction.highest_bid; + let is_new_highest_bid = amount > auction.highest_bid; let sender = msg_sender().unwrap(); - if IS_NEW_HIGHEST_BID { + if is_new_highest_bid { auction.highest_bidder = Some(sender); auction.highest_bid = amount; } From ec9629ce3276125533a171faf02ebfb1bb861c61 Mon Sep 17 00:00:00 2001 From: vitor Date: Sat, 5 Jul 2025 00:18:52 -0300 Subject: [PATCH 6/7] fix(auction): allow bids equal to the highest bid and simplify bid logic --- packages/contracts/sway/auction/src/main.sw | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/contracts/sway/auction/src/main.sw b/packages/contracts/sway/auction/src/main.sw index 585e640..118105c 100644 --- a/packages/contracts/sway/auction/src/main.sw +++ b/packages/contracts/sway/auction/src/main.sw @@ -43,17 +43,15 @@ impl KombinationAuction for Contract { let highest_bid_with_five_percent = auction.highest_bid + (auction.highest_bid / 20); // 5% of the highest bid require( - amount > highest_bid_with_five_percent, + amount >= highest_bid_with_five_percent, AuctionError::BidTooLow(amount), ); - let is_new_highest_bid = amount > auction.highest_bid; let sender = msg_sender().unwrap(); - if is_new_highest_bid { - auction.highest_bidder = Some(sender); - auction.highest_bid = amount; - } + auction.highest_bidder = Some(sender); + auction.highest_bid = amount; + // Add the bidder to the bidders map with their bid amount storage.bidders.insert((auction_id, sender), amount); storage.auctions.insert(auction_id, auction); From 03bb354837d18b22c84cf6a8c548aaa6cf981e59 Mon Sep 17 00:00:00 2001 From: vitor Date: Mon, 28 Jul 2025 23:58:50 -0300 Subject: [PATCH 7/7] feat(auction): add auction withdraw --- .../src/artifacts/contracts/Auction.ts | 122 +++++++++++++++--- .../src/artifacts/contracts/AuctionFactory.ts | 2 +- .../contracts/sway/auction/src/auction.sw | 10 +- packages/contracts/sway/auction/src/events.sw | 6 + .../contracts/sway/auction/src/interfaces.sw | 24 ++++ packages/contracts/sway/auction/src/main.sw | 119 +++++++++++++---- 6 files changed, 234 insertions(+), 49 deletions(-) diff --git a/packages/contracts/src/artifacts/contracts/Auction.ts b/packages/contracts/src/artifacts/contracts/Auction.ts index 4851a55..5700e52 100644 --- a/packages/contracts/src/artifacts/contracts/Auction.ts +++ b/packages/contracts/src/artifacts/contracts/Auction.ts @@ -26,8 +26,8 @@ import type { Option, Enum } from "./common"; export enum AccessErrorInput { NotOwner = 'NotOwner' }; export enum AccessErrorOutput { NotOwner = 'NotOwner' }; -export type AuctionErrorInput = Enum<{ AuctionNotActive: string, AuctionNotFound: string, BidTooLow: BigNumberish, InitialBidTooLow: BigNumberish, NotOwner: undefined, ContractPaused: undefined, AuctionAlreadyExists: AssetIdInput, EndTimeInPast: BigNumberish }>; -export type AuctionErrorOutput = Enum<{ AuctionNotActive: string, AuctionNotFound: string, BidTooLow: BN, InitialBidTooLow: BN, NotOwner: void, ContractPaused: void, AuctionAlreadyExists: AssetIdOutput, EndTimeInPast: BN }>; +export type AuctionErrorInput = Enum<{ AuctionNotActive: string, AuctionNotFound: string, BidTooLow: BigNumberish, BidNotFound: IdentityInput, InitialBidTooLow: BigNumberish, NotOwner: undefined, ContractPaused: undefined, AuctionAlreadyExists: AssetIdInput, EndTimeInPast: BigNumberish, BidderNotFound: IdentityInput, SenderIsHighestBidder: IdentityInput }>; +export type AuctionErrorOutput = Enum<{ AuctionNotActive: string, AuctionNotFound: string, BidTooLow: BN, BidNotFound: IdentityOutput, InitialBidTooLow: BN, NotOwner: void, ContractPaused: void, AuctionAlreadyExists: AssetIdOutput, EndTimeInPast: BN, BidderNotFound: IdentityOutput, SenderIsHighestBidder: IdentityOutput }>; export type IdentityInput = Enum<{ Address: AddressInput, ContractId: ContractIdInput }>; export type IdentityOutput = Enum<{ Address: AddressOutput, ContractId: ContractIdOutput }>; export enum InitializationErrorInput { CannotReinitialized = 'CannotReinitialized' }; @@ -45,6 +45,8 @@ export type AuctionStartedEventInput = { auction_id: string, asset_id: AssetIdIn export type AuctionStartedEventOutput = { auction_id: string, asset_id: AssetIdOutput, end_time: BN, initial_bid: BN }; export type BidPlacedEventInput = { auction_id: string, bidder: IdentityInput, amount: BigNumberish }; export type BidPlacedEventOutput = { auction_id: string, bidder: IdentityOutput, amount: BN }; +export type BidWithdrawnEventInput = { auction_id: string, bidder: IdentityInput, amount: BigNumberish }; +export type BidWithdrawnEventOutput = { auction_id: string, bidder: IdentityOutput, amount: BN }; export type ContractIdInput = { bits: string }; export type ContractIdOutput = ContractIdInput; export type OwnershipSetInput = { new_owner: IdentityInput }; @@ -54,6 +56,11 @@ export type OwnershipTransferredOutput = { new_owner: IdentityOutput, previous_o export type StartAuctionInput = { end_time: BigNumberish, asset_id: AssetIdInput, initial_bid: BigNumberish }; export type StartAuctionOutput = { end_time: BN, asset_id: AssetIdOutput, initial_bid: BN }; +export type AuctionConfigurables = Partial<{ + MIN_BID_INCREASE: BigNumberish; + TIME_BUFFER: BigNumberish; +}>; + const abi = { "programType": "contract", "specVersion": "1", @@ -116,20 +123,25 @@ const abi = { "concreteTypeId": "5d73cb84063b4854a71ec5fbcff7b0f372509eb4efc7b207184a300becb9d3db", "metadataTypeId": 10 }, + { + "type": "struct events::BidWithdrawnEvent", + "concreteTypeId": "bc3782ab7b2a93ce4049ea5147c1dc21be037f83c20161e440f55e532a398493", + "metadataTypeId": 11 + }, { "type": "struct interfaces::StartAuction", "concreteTypeId": "ab30248bb185f18df7dff31d06861bccd4bea762e95fe091f2a869b323450e2b", - "metadataTypeId": 11 + "metadataTypeId": 12 }, { "type": "struct sway_libs::ownership::events::OwnershipSet", "concreteTypeId": "e1ef35033ea9d2956f17c3292dea4a46ce7d61fdf37bbebe03b7b965073f43b5", - "metadataTypeId": 15 + "metadataTypeId": 16 }, { "type": "struct sway_libs::ownership::events::OwnershipTransferred", "concreteTypeId": "b3fffbcb3158d7c010c31b194b60fb7857adb4ad61bdcf4b8b42958951d9f308", - "metadataTypeId": 16 + "metadataTypeId": 17 }, { "type": "u64", @@ -173,6 +185,10 @@ const abi = { "name": "BidTooLow", "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" }, + { + "name": "BidNotFound", + "typeId": 3 + }, { "name": "InitialBidTooLow", "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" @@ -187,11 +203,19 @@ const abi = { }, { "name": "AuctionAlreadyExists", - "typeId": 13 + "typeId": 14 }, { "name": "EndTimeInPast", "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + }, + { + "name": "BidderNotFound", + "typeId": 3 + }, + { + "name": "SenderIsHighestBidder", + "typeId": 3 } ] }, @@ -211,11 +235,11 @@ const abi = { "components": [ { "name": "Address", - "typeId": 12 + "typeId": 13 }, { "name": "ContractId", - "typeId": 14 + "typeId": 15 } ] }, @@ -284,7 +308,7 @@ const abi = { }, { "name": "asset_id", - "typeId": 13 + "typeId": 14 }, { "name": "end_time", @@ -315,8 +339,26 @@ const abi = { ] }, { - "type": "struct interfaces::StartAuction", + "type": "struct events::BidWithdrawnEvent", "metadataTypeId": 11, + "components": [ + { + "name": "auction_id", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + }, + { + "name": "bidder", + "typeId": 3 + }, + { + "name": "amount", + "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" + } + ] + }, + { + "type": "struct interfaces::StartAuction", + "metadataTypeId": 12, "components": [ { "name": "end_time", @@ -324,7 +366,7 @@ const abi = { }, { "name": "asset_id", - "typeId": 13 + "typeId": 14 }, { "name": "initial_bid", @@ -334,7 +376,7 @@ const abi = { }, { "type": "struct std::address::Address", - "metadataTypeId": 12, + "metadataTypeId": 13, "components": [ { "name": "bits", @@ -344,7 +386,7 @@ const abi = { }, { "type": "struct std::asset_id::AssetId", - "metadataTypeId": 13, + "metadataTypeId": 14, "components": [ { "name": "bits", @@ -354,7 +396,7 @@ const abi = { }, { "type": "struct std::contract_id::ContractId", - "metadataTypeId": 14, + "metadataTypeId": 15, "components": [ { "name": "bits", @@ -364,7 +406,7 @@ const abi = { }, { "type": "struct sway_libs::ownership::events::OwnershipSet", - "metadataTypeId": 15, + "metadataTypeId": 16, "components": [ { "name": "new_owner", @@ -374,7 +416,7 @@ const abi = { }, { "type": "struct sway_libs::ownership::events::OwnershipTransferred", - "metadataTypeId": 16, + "metadataTypeId": 17, "components": [ { "name": "new_owner", @@ -401,7 +443,7 @@ const abi = { { "name": "doc-comment", "arguments": [ - " Places a bid on an auction." + " Ends an auction and transfers the asset to the highest bidder." ] }, { @@ -426,7 +468,7 @@ const abi = { { "name": "doc-comment", "arguments": [ - " Places a bid on an auction." + " Gets the highest bid for an auction." ] }, { @@ -519,6 +561,31 @@ const abi = { } ] }, + { + "inputs": [ + { + "name": "auction_id", + "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ], + "name": "withdraw_bid", + "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", + "attributes": [ + { + "name": "doc-comment", + "arguments": [ + " Withdraws a bid from an auction." + ] + }, + { + "name": "storage", + "arguments": [ + "read", + "write" + ] + } + ] + }, { "inputs": [ { @@ -621,6 +688,10 @@ const abi = { "logId": "4618781499065298805", "concreteTypeId": "4019354d52eeef759a21c8172975440be84d757a4480059ed0d5ce08d588a0f3" }, + { + "logId": "13562452475866944462", + "concreteTypeId": "bc3782ab7b2a93ce4049ea5147c1dc21be037f83c20161e440f55e532a398493" + }, { "logId": "2161305517876418151", "concreteTypeId": "1dfe7feadc1d9667a4351761230f948744068a090fe91b1bc6763a90ed5d3893" @@ -635,7 +706,18 @@ const abi = { } ], "messagesTypes": [], - "configurables": [] + "configurables": [ + { + "name": "MIN_BID_INCREASE", + "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0", + "offset": 33328 + }, + { + "name": "TIME_BUFFER", + "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0", + "offset": 33336 + } + ] }; const storageSlots: StorageSlot[] = []; @@ -651,6 +733,7 @@ export class AuctionInterface extends Interface { is_active: FunctionFragment; place_bid: FunctionFragment; start_auction: FunctionFragment; + withdraw_bid: FunctionFragment; initialize: FunctionFragment; transfer_ownership: FunctionFragment; is_paused: FunctionFragment; @@ -670,6 +753,7 @@ export class Auction extends __Contract { is_active: InvokeFunction<[auction_id: string], boolean>; place_bid: InvokeFunction<[auction_id: string, amount: BigNumberish], void>; start_auction: InvokeFunction<[payload: StartAuctionInput], string>; + withdraw_bid: InvokeFunction<[auction_id: string], void>; initialize: InvokeFunction<[owner: IdentityInput], void>; transfer_ownership: InvokeFunction<[new_owner: IdentityInput], void>; is_paused: InvokeFunction<[], boolean>; diff --git a/packages/contracts/src/artifacts/contracts/AuctionFactory.ts b/packages/contracts/src/artifacts/contracts/AuctionFactory.ts index 2fb412f..9740b70 100644 --- a/packages/contracts/src/artifacts/contracts/AuctionFactory.ts +++ b/packages/contracts/src/artifacts/contracts/AuctionFactory.ts @@ -15,7 +15,7 @@ import type { Provider, Account, DeployContractOptions } from "fuels"; import { Auction } from "./Auction"; -const bytecode = decompressBytecode("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"); +const bytecode = decompressBytecode("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"); export class AuctionFactory extends __ContractFactory { diff --git a/packages/contracts/sway/auction/src/auction.sw b/packages/contracts/sway/auction/src/auction.sw index 8a62c54..fb6eb07 100644 --- a/packages/contracts/sway/auction/src/auction.sw +++ b/packages/contracts/sway/auction/src/auction.sw @@ -7,6 +7,8 @@ pub struct Auction { pub asset_id: AssetId, // time when the auction ends pub end_time: u64, + // time when the auction starts + pub start_time: Option, // Initial bid amount pub initial_bid: u64, // Status of the auction @@ -17,7 +19,12 @@ pub struct Auction { } impl Auction { - pub fn new(asset_id: AssetId, end_time: u64, initial_bid: u64) -> Self { + pub fn new( + asset_id: AssetId, + end_time: u64, + initial_bid: u64, + start_time: Option, + ) -> Self { Auction { asset_id, end_time, @@ -25,6 +32,7 @@ impl Auction { active: true, highest_bidder: None, highest_bid: 0, + start_time, } } } diff --git a/packages/contracts/sway/auction/src/events.sw b/packages/contracts/sway/auction/src/events.sw index 775dfc9..808ea12 100644 --- a/packages/contracts/sway/auction/src/events.sw +++ b/packages/contracts/sway/auction/src/events.sw @@ -20,3 +20,9 @@ pub struct AuctionEndedEvent { pub winner: Identity, pub winning_bid: u64, } + +pub struct BidWithdrawnEvent { + pub auction_id: AuctionId, + pub bidder: Identity, + pub amount: u64, +} diff --git a/packages/contracts/sway/auction/src/interfaces.sw b/packages/contracts/sway/auction/src/interfaces.sw index 4e53410..ab605c2 100644 --- a/packages/contracts/sway/auction/src/interfaces.sw +++ b/packages/contracts/sway/auction/src/interfaces.sw @@ -15,6 +15,8 @@ pub enum AuctionError { AuctionNotFound: AuctionId, /// The bid amount is less than 5% of the current highest bid BidTooLow: u64, + /// The bid was not found for the given identity + BidNotFound: Identity, /// The bid amount is less than the initial bid InitialBidTooLow: u64, /// The caller is not the owner of the contract @@ -25,6 +27,10 @@ pub enum AuctionError { AuctionAlreadyExists: AssetId, /// The auction end time is in the past EndTimeInPast: u64, + /// The bidder identity was not found + BidderNotFound: Identity, + /// The sender is the highest bidder + SenderIsHighestBidder: Identity, } abi KombinationAuction { @@ -121,6 +127,24 @@ abi KombinationAuction { /// #[storage(read)] fn is_active(auction_id: AuctionId) -> bool; + + /// Withdraw a bid from an auction + /// /// + /// # Arguments + /// /// + /// * `auction_id`: The ID of the auction to withdraw the bid from + /// /// # Reverts + /// /// + /// * If the auction is not found + /// * If the caller is not the bidder + /// * If the bid was not found for the given identity + /// * If the contract is paused + /// * If the sender is the highest bidder + /// # Events + /// /// + /// * `BidWithdrawnEvent`: Emitted when a bid is successfully withdrawn + #[storage(read, write)] + fn withdraw_bid(auction_id: AuctionId); } /// Interface for managing ownership of the contract diff --git a/packages/contracts/sway/auction/src/main.sw b/packages/contracts/sway/auction/src/main.sw index 118105c..602bced 100644 --- a/packages/contracts/sway/auction/src/main.sw +++ b/packages/contracts/sway/auction/src/main.sw @@ -7,23 +7,31 @@ mod auction; use sway_libs::pausable::{_is_paused, _pause, _unpause, Pausable, require_not_paused}; use sway_libs::ownership::{initialize_ownership, only_owner, transfer_ownership}; use sway_libs::reentrancy::*; -use std::hash::sha256; +use std::{asset::transfer, block::timestamp, hash::sha256, storage::storage_vec::*}; use auction::{Auction, AuctionId}; use interfaces::{AuctionError, KombinationAuction, Ownership, StartAuction}; -use events::{AuctionEndedEvent, AuctionStartedEvent, BidPlacedEvent}; +use events::{AuctionEndedEvent, AuctionStartedEvent, BidPlacedEvent, BidWithdrawnEvent}; + +// Configuration for the auction contract. +configurable { + /// Minimum bid increase percentage + MIN_BID_INCREASE: u64 = 5, + /// Time buffer to allow for last-minute bids + TIME_BUFFER: u64 = 60, +} +/// Main contract storage. storage { // Auctions map auctions: StorageMap = StorageMap {}, - // Bidders map with their bid amounts - bidders: StorageMap<(AuctionId, Identity), u64> = StorageMap {}, + // Pending bidders map + pending_bidders: StorageMap> = StorageMap {}, } fn _get_auction_id(auction: StartAuction) -> AuctionId { sha256((auction.asset_id, auction.end_time)) } - #[storage(read)] fn _get_auction(auction_id: AuctionId) -> Auction { let auction = storage.auctions.get(auction_id).try_read(); @@ -37,23 +45,44 @@ impl KombinationAuction for Contract { fn place_bid(auction_id: AuctionId, amount: u64) { reentrancy_guard(); require_not_paused(); - let mut auction = _get_auction(auction_id); - require(auction.active, AuctionError::AuctionNotActive(auction_id)); - - let highest_bid_with_five_percent = auction.highest_bid + (auction.highest_bid / 20); // 5% of the highest bid + let is_available_to_bid = auction.end_time > timestamp(); require( - amount >= highest_bid_with_five_percent, + is_available_to_bid, + AuctionError::AuctionNotActive(auction_id), + ); + let min_next_bid = auction.highest_bid + (auction.highest_bid * MIN_BID_INCREASE / 100); + let bid_with_min_next_bid = auction.highest_bid + min_next_bid; + require( + amount >= bid_with_min_next_bid, AuctionError::BidTooLow(amount), ); - let sender = msg_sender().unwrap(); + match auction.highest_bidder { + Some(previous_highest_bidder) => { + storage + .pending_bidders + .get(auction_id) + .insert(previous_highest_bidder, auction.highest_bid); + } + // is first bid + None => { + auction.start_time = Some(timestamp()); + auction.active = true; + } + } + + let is_last_minute = auction.end_time - timestamp() <= TIME_BUFFER; + if is_last_minute { + auction.end_time += TIME_BUFFER; + } + let pending_bidders = storage.pending_bidders.get(auction_id); + pending_bidders.remove(sender); + + // update auction highest bid and bidder auction.highest_bidder = Some(sender); auction.highest_bid = amount; - - // Add the bidder to the bidders map with their bid amount - storage.bidders.insert((auction_id, sender), amount); storage.auctions.insert(auction_id, auction); log(BidPlacedEvent { @@ -62,6 +91,7 @@ impl KombinationAuction for Contract { amount, }); } + /// Starts a new auction. #[storage(write, read)] fn start_auction(payload: StartAuction) -> AuctionId { @@ -70,53 +100,87 @@ impl KombinationAuction for Contract { let auction_id = _get_auction_id(payload); // let already_exists = auctions.get(auction_id).read_slice().unwrap(); // require(!already_exists, AuctionError::AuctionAlreadyExists(payload.asset_id)); - // require( - // payload - // .end_time > block_timestamp(), - // AuctionError::EndTimeInPast(payload.end_time), - // ); + require( + payload + .end_time > timestamp(), + AuctionError::EndTimeInPast(payload.end_time), + ); require( payload .initial_bid > 0, AuctionError::InitialBidTooLow(payload.initial_bid), ); - - let auction = Auction::new(payload.asset_id, payload.end_time, payload.initial_bid); - + let auction = Auction::new( + payload + .asset_id, + payload + .end_time, + payload + .initial_bid, + None, + ); storage.auctions.insert(auction_id, auction); + storage.pending_bidders.insert(auction_id, StorageMap {}); log(AuctionStartedEvent { auction_id, asset_id: payload.asset_id, end_time: payload.end_time, initial_bid: payload.initial_bid, }); - auction_id } - /// Places a bid on an auction. + + /// Ends an auction and transfers the asset to the highest bidder. #[storage(write, read)] fn end_auction(auction_id: AuctionId) { only_owner(); require_not_paused(); let mut auction = _get_auction(auction_id); require(auction.active, AuctionError::AuctionNotActive(auction_id)); - // Logic to finalize the auction, e.g., transfer asset to highest bidder - // ... + + transfer(auction.highest_bidder.unwrap(), auction.asset_id, 1); + auction.active = false; storage.auctions.insert(auction_id, auction); } - /// Places a bid on an auction. + + /// Gets the highest bid for an auction. #[storage(read)] fn get_highest_bid(auction_id: AuctionId) -> (Option, u64) { let auction = _get_auction(auction_id); (auction.highest_bidder, auction.highest_bid) } + /// Places a bid on an auction. #[storage(read)] fn is_active(auction_id: AuctionId) -> bool { let auction = _get_auction(auction_id); auction.active } + + /// Withdraws a bid from an auction. + #[storage(read, write)] + fn withdraw_bid(auction_id: AuctionId) { + require_not_paused(); + let auction = _get_auction(auction_id); + + let sender = msg_sender().unwrap(); + + require(auction.highest_bidder != Some(sender), AuctionError::SenderIsHighestBidder(sender)); + + let amount = storage.pending_bidders.get(auction_id).get(sender).try_read(); + require(amount.is_some(), AuctionError::BidNotFound(sender)); + + let amount = amount.unwrap(); + + transfer(sender, auction.asset_id, amount); + storage.pending_bidders.get(auction_id).remove(sender); // Returns bool, but ignored + log(BidWithdrawnEvent { + auction_id, + bidder: sender, + amount, + }); + } } impl Ownership for Contract { @@ -124,7 +188,6 @@ impl Ownership for Contract { fn initialize(owner: Identity) { initialize_ownership(owner); } - #[storage(write)] fn transfer_ownership(new_owner: Identity) { transfer_ownership(new_owner);