diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..9e733ac --- /dev/null +++ b/bun.lock @@ -0,0 +1,1535 @@ +{ + "lockfileVersion": 1, + "configVersion": 0, + "workspaces": { + "": { + "name": "stable-docs-vocs", + "dependencies": { + "lucide-react": "^0.468.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "vocs": "^1.0.16", + }, + "devDependencies": { + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "typescript": "^5.6.0", + }, + }, + }, + "packages": { + "@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="], + + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], + + "@babel/core": ["@babel/core@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-module-transforms": "^7.29.7", "@babel/helpers": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], + + "@babel/generator": ["@babel/generator@7.29.7", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], + + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.29.7", "", {}, "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], + + "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], + + "@babel/parser": ["@babel/parser@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" } }, "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg=="], + + "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA=="], + + "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw=="], + + "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q=="], + + "@babel/runtime": ["@babel/runtime@7.29.7", "", {}, "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw=="], + + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], + + "@babel/traverse": ["@babel/traverse@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.7", "debug": "^4.3.1" } }, "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw=="], + + "@babel/types": ["@babel/types@7.29.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA=="], + + "@braintree/sanitize-url": ["@braintree/sanitize-url@7.1.2", "", {}, "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA=="], + + "@chevrotain/types": ["@chevrotain/types@11.1.2", "", {}, "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw=="], + + "@clack/core": ["@clack/core@0.3.5", "", { "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ=="], + + "@clack/prompts": ["@clack/prompts@0.7.0", "", { "dependencies": { "@clack/core": "^0.3.3", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA=="], + + "@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], + + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], + + "@emotion/hash": ["@emotion/hash@0.9.2", "", {}, "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.7", "", { "os": "aix", "cpu": "ppc64" }, "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.7", "", { "os": "android", "cpu": "arm" }, "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.7", "", { "os": "android", "cpu": "arm64" }, "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.7", "", { "os": "android", "cpu": "x64" }, "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.7", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.7", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.7", "", { "os": "linux", "cpu": "arm" }, "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.7", "", { "os": "linux", "cpu": "ia32" }, "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.7", "", { "os": "linux", "cpu": "ppc64" }, "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.7", "", { "os": "linux", "cpu": "s390x" }, "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.7", "", { "os": "linux", "cpu": "x64" }, "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.7", "", { "os": "none", "cpu": "x64" }, "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.7", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.7", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.7", "", { "os": "sunos", "cpu": "x64" }, "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.7", "", { "os": "win32", "cpu": "ia32" }, "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.7", "", { "os": "win32", "cpu": "x64" }, "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg=="], + + "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], + + "@floating-ui/react": ["@floating-ui/react@0.27.19", "", { "dependencies": { "@floating-ui/react-dom": "^2.1.8", "@floating-ui/utils": "^0.2.11", "tabbable": "^6.0.0" }, "peerDependencies": { "react": ">=17.0.0", "react-dom": ">=17.0.0" } }, "sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog=="], + + "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.8", "", { "dependencies": { "@floating-ui/dom": "^1.7.6" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], + + "@fortawesome/fontawesome-free": ["@fortawesome/fontawesome-free@6.7.2", "", {}, "sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA=="], + + "@hono/node-server": ["@hono/node-server@1.19.14", "", { "peerDependencies": { "hono": "^4" } }, "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="], + + "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + + "@iconify/utils": ["@iconify/utils@3.1.3", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/types": "^2.0.0", "import-meta-resolve": "^4.2.0" } }, "sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="], + + "@mdx-js/react": ["@mdx-js/react@3.1.1", "", { "dependencies": { "@types/mdx": "^2.0.0" }, "peerDependencies": { "@types/react": ">=16", "react": ">=16" } }, "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw=="], + + "@mdx-js/rollup": ["@mdx-js/rollup@3.1.1", "", { "dependencies": { "@mdx-js/mdx": "^3.0.0", "@rollup/pluginutils": "^5.0.0", "source-map": "^0.7.0", "vfile": "^6.0.0" }, "peerDependencies": { "rollup": ">=2" } }, "sha512-v8satFmBB+DqDzYohnm1u2JOvxx6Hl3pUvqzJvfs2Zk/ngZ1aRUhsWpXvwPkNeGN9c2NCm/38H29ZqXQUjf8dw=="], + + "@mermaid-js/parser": ["@mermaid-js/parser@1.1.1", "", { "dependencies": { "@chevrotain/types": "~11.1.1" } }, "sha512-VuHdsYMK1bT6X2JbcAaWAhugTRvRBRyuZgd+c22swUeI9g/ntaxF7CY7dYarhZovofCbUNO0G7JesfmNtjYOCw=="], + + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], + + "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@oxc-project/types": ["@oxc-project/types@0.133.0", "", {}, "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA=="], + + "@radix-ui/colors": ["@radix-ui/colors@3.0.0", "", {}, "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg=="], + + "@radix-ui/number": ["@radix-ui/number@1.1.2", "", {}, "sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig=="], + + "@radix-ui/primitive": ["@radix-ui/primitive@1.1.4", "", {}, "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ=="], + + "@radix-ui/react-accessible-icon": ["@radix-ui/react-accessible-icon@1.1.9", "", { "dependencies": { "@radix-ui/react-visually-hidden": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-5W9KzJz/3DeYbGJHbZv8Q6AkxMOKUmALfc+PRg9dWwJZMk6zD37Sz8sZrF7UD6CBkiJvn7dNeRzn5G7XiCMyig=="], + + "@radix-ui/react-accordion": ["@radix-ui/react-accordion@1.2.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collapsible": "1.1.13", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-xITxBB2p5m5tAe7M0F95kb4uAh7jSIKGlExMEm93HlW+XxZHV2eXFbPWLktd4JhRiwcnXNbO7iekcrbZy6ZCvA=="], + + "@radix-ui/react-alert-dialog": ["@radix-ui/react-alert-dialog@1.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dialog": "1.1.16", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-slot": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-vPaIgo0mxYlvcFaM9jB2Uot9TjGXMuAPEvrc6BOLeV+I5U8s1dkIoouYaa6lmSfc5SPMo5x5djOTOTvaigdGMQ=="], + + "@radix-ui/react-arrow": ["@radix-ui/react-arrow@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-yqHW5WQ/cTpU/un7dqqIKNy2iRU8BC0JB78PEzTfCCYvZu1U6W9KwObAniMk9nhSfyotKPQTYaUD/HB0f5muig=="], + + "@radix-ui/react-aspect-ratio": ["@radix-ui/react-aspect-ratio@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-Xy+Dpxt/5n9rVTdPrNFmf8GwG1NlT1pzCF/z1MgOGZMLZWdWl+km+ZRWGQAPEhbkzSwYEsfYmTca8NhUtVxqnw=="], + + "@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.1.12", "", { "dependencies": { "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-is-hydrated": "0.1.1", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-NQCQyWC7QrDPhjMn8hUqFeU0lUrprIgm1AyMgLbzuQJibNnatdc3SSMo3/UGFu/eUkJUU1cEcKCnyhXTQzq6tA=="], + + "@radix-ui/react-checkbox": ["@radix-ui/react-checkbox@1.3.4", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-m3JmIOAX5ZzZ6VPjxEU2dbTOhoHi0nT5riwcDwe8idocsWf4a5DXJLDtZ6LfJwMBx7W+A2b7kp2TgPEKtaiF6A=="], + + "@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-F0s8+p2XNpfc3k02zBfB0jPWbkHVG162+p7BdUMyJ2308QMqZ+oaclX+FAzKFovgL5OqRU+Rvy6f/vbdlJVaqA=="], + + "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.9", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-slot": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-zuSVi7ziP7uQRqc+yGxsKJfNkdyHv3ZKDaHe0gzg4dRgws96TPKWIiz84tVHP4GEcEl8bC0mdt17NkcxaJHmaQ=="], + + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA=="], + + "@radix-ui/react-context": ["@radix-ui/react-context@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg=="], + + "@radix-ui/react-context-menu": ["@radix-ui/react-context-menu@2.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-menu": "2.1.17", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-d7CouXhAW+CGmFOqmB+IEvd3E9GcaqfgvfjCc3hfulp2pkaUCEVEGa0SN5nNWYA+IvQ6g1Pt+S5dpNn1AoY9hg=="], + + "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.9", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-slot": "1.2.5", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-l9ok83YBclEZhbjgzt76Hw733e6cvRKPNgO6GJ/IETlufXG9p+fRu2wlvpImQvR6xdJ8h7J8J2DBvsPEiEsKMw=="], + + "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA=="], + + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-escape-keydown": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-MhoruH6xEzsbvOmo4TNgMfmtvRGyDZw4MDSdf4ybMHfezjqwzv6hyd4lsMzBp8K9Sn6sGzCF62x1I7BYUECXOg=="], + + "@radix-ui/react-dropdown-menu": ["@radix-ui/react-dropdown-menu@2.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-menu": "2.1.17", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-S6b3Jm57sY5EdDyOMLkacbB0qMnKhy1RCKZCt795ZkmtUOAvojYIZ5p7dXHIh5Cyr3jCLLI5/g64V3FKLudZmw=="], + + "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q=="], + + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.9", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-9Se8t+Zry+1rEOL7Y6l/4ANYU/TOtAtf8O2fKdwLltcaMcm6kOqYGbzO4tMFQ0bvzO920pRAoHpFZ4W85S3keQ=="], + + "@radix-ui/react-form": ["@radix-ui/react-form@0.1.9", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-label": "2.1.9", "@radix-ui/react-primitive": "2.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-eTPyThIKDacJ3mJDvYwf/PSmsEYlOyA2Qcb+aGyWwYv+P5w57VPUkMVA2XJ9z0Du2KBY1HoHQzhPV9iYL/r4hg=="], + + "@radix-ui/react-hover-card": ["@radix-ui/react-hover-card@1.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-popper": "1.3.0", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-hAileDBtd6CX7nlZOarOnISQ6PP4q0e16BX51ulzdZ+7IzjL0sDTVpFdmSYrIjw6zVNsfQBao5gG6AWr3qwfvA=="], + + "@radix-ui/react-icons": ["@radix-ui/react-icons@1.3.2", "", { "peerDependencies": { "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" } }, "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g=="], + + "@radix-ui/react-id": ["@radix-ui/react-id@1.1.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA=="], + + "@radix-ui/react-label": ["@radix-ui/react-label@2.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-rDoTeMbCwRVcnmo7NGT9IlPo1yXmEI+xc1URP3oeewwZEV4mdTp1dYUhYbQdo4D1q2SjKVvv4N1gNY77QAQtjA=="], + + "@radix-ui/react-menu": ["@radix-ui/react-menu@2.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.9", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.0", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-slot": "1.2.5", "@radix-ui/react-use-callback-ref": "1.1.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-fmbNnFyf+JYCN0DhhWnEdUTDnZD1mXaPQWivdsPIb8oOSbARfD3LIQJbLCG8a8QLCwoMxiJ7GVPIFcC8Dw8v2Q=="], + + "@radix-ui/react-menubar": ["@radix-ui/react-menubar@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-menu": "2.1.17", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-AKtZ4O782yO7qwIyq73WpulYt1IHhQ0htDb6wNcxzxnSDCcSWMVBiU9ycpcA90XzQO4IVIxIErtak6Kg/Vt0rQ=="], + + "@radix-ui/react-navigation-menu": ["@radix-ui/react-navigation-menu@1.2.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-/fS8hKCcRt4DwCGa5QIB3juRXmfYSOk4a2AEe/BDIyy7Hm+eje2Y13oUx5zejl+wFt1owrM7E8NWlbaEl5EGpg=="], + + "@radix-ui/react-one-time-password-field": ["@radix-ui/react-one-time-password-field@0.1.9", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-is-hydrated": "0.1.1", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-fvCzA9hm7yN5xxTPJIi4VhSmH5gv+76ILsxguBK3cm3icD5BR4vW7POQmu8Zio0yh91uuouG/Kang40IbMkaSQ=="], + + "@radix-ui/react-password-toggle-field": ["@radix-ui/react-password-toggle-field@0.1.4", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-is-hydrated": "0.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-qoDSkObZ9faJlsjlwyBH6ia7kq9vaJ2QwWTowT3nQpzPvUTAKesmWuGJYpd91HIoJqS+5ZPXy5uFPp+HlwdaAg=="], + + "@radix-ui/react-popover": ["@radix-ui/react-popover@1.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.9", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.0", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-slot": "1.2.5", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-8brVpAU5Uq7Bh0c8EFc4ZTf2JJTYn0o+1L+CUJB3UYIOkTjKGMgoHvduylrahdmNlr3DfH0rFq2DrbNZXgaspw=="], + + "@radix-ui/react-popper": ["@radix-ui/react-popper@1.3.0", "", { "dependencies": { "@floating-ui/react-dom": "^2.0.0", "@radix-ui/react-arrow": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-rect": "1.1.2", "@radix-ui/react-use-size": "1.1.2", "@radix-ui/rect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-9PB589e1aWZbrlFUHdz6WiPCL+xLZHQFX7oibqG/6Q0SwOkxDyQX9W/cyPa+sAPPKuC8cpLCpRczE5a/1DiwVQ=="], + + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.11", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-UEytdjgEh2tJGgD/gZK4FUx6t1rNIlM3U0DENhSrG7I75FGm1DnaDuVUWF1pWAWUwGmn1sCJ1VGHn8LhN1aTOw=="], + + "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.6", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ=="], + + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.5", "", { "dependencies": { "@radix-ui/react-slot": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-zifXeB8Y88qCYx8PLZ5oQb32KwZub+s925mMoZsBBq9KUQqWKkREubTfs6ASjRPPBe7Jt9O8OHH89+95VG+grA=="], + + "@radix-ui/react-progress": ["@radix-ui/react-progress@1.1.9", "", { "dependencies": { "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-+EOkvg1Zn1vI1+fRDfRSAiJ7BWfcDAo5ASMmbqrcLZ4s4USk2FGkoHgeb2X+CkUgo2zJMiyObwf1k44CrRWsyw=="], + + "@radix-ui/react-radio-group": ["@radix-ui/react-radio-group@1.4.0", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-eHdV5bLx9sH+tBnbDjkIBdvQEH/c6MEtQYhTbxkaDK9qsIFFLtmJYEQFVdwhnruWotLfQmIuWEL/J+L3utE8rQ=="], + + "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-FvgPt1bRmg8Xt2QpF7NUZW3dE0ZQHGm41dAdgT2J2GJPoIXz+9Em3NobAxf4fupcxhgHu03E5CRiU2MWvObXyg=="], + + "@radix-ui/react-scroll-area": ["@radix-ui/react-scroll-area@1.2.11", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-DS39ziOgea75U/TrXKU2/oKp0be2jrDHnzFLvahg/0iNAT1Zq16e4Uw0WXwyXvsK+mG3BRyMb7A3NRZMDuEXtQ=="], + + "@radix-ui/react-select": ["@radix-ui/react-select@2.3.0", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.9", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.0", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-slot": "1.2.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.5", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-mENc7WpJvJcW8hlMpzfFcHcEhTvYS5JMBmi9HVC1Q00uhBwML086MHYUV8QQdQv6lcu0Wg8dzd1RB8AFADcG/g=="], + + "@radix-ui/react-separator": ["@radix-ui/react-separator@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-gvgW+JV/Mbjj6darztTetnmElpQEzZrXpJvfj+dOxNAxiyHEAyUvEjjl4zxblvmjmKmi3jfPoy7ZdxzCuUBJSA=="], + + "@radix-ui/react-slider": ["@radix-ui/react-slider@1.4.0", "", { "dependencies": { "@radix-ui/number": "1.1.2", "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-RHcPlLOThRJM51DSIC33ZnpDEBYhyEFroVWkd2P54PGGjkmAt14RboYUU9E1MFst666zFHM0tGtWvMjSOtU1pw=="], + + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.5", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-rCMO3QsIVKv5JTY5CVbo2MvO77SpEqqYc8AvRE7OWqRDOIqAKjsp+DrmnY9uc8NPdxB5E2z47HTYGeE2+NTptg=="], + + "@radix-ui/react-switch": ["@radix-ui/react-switch@1.3.0", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-previous": "1.1.2", "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-GP1EZwhoZO/GGnhM1P5/2Vpm8iN8EnngyU0oezn2l78kN8tj25pyrvjIaT7azBhK615KSt+P2w39y57YV5jVkA=="], + + "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.14", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-D5jwp9JNuwDeCw3CYD2Fz+sSHo0droQjC8u75dJHe4aWr5q6yBiXZU+hurXnKudRgEpUkD5TsI6bjHPo5ThUxA=="], + + "@radix-ui/react-toast": ["@radix-ui/react-toast@1.2.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-WUymDDiN2DpoGudRN1aW4wF5O3BNQjZZO/5nngPoNiEVqjyOzirvZZNO0R6dC1ifucSINVaSv8JX1aq47VGgiA=="], + + "@radix-ui/react-toggle": ["@radix-ui/react-toggle@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-FikrKJemoBGZQ6uRID0HJqSPBP6D7OppdD2OhLl0ZYLlAyPXI7MezoYGmumwNkrAoRm35xXkb4C8JPfJZZzcaw=="], + + "@radix-ui/react-toggle-group": ["@radix-ui/react-toggle-group@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-toggle": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-TEgECgJaWGAHJJZGzNNEYTNBdIXqX7LchANycpyP7DkfjmuiSN7ISt1k/ZRGVJgVJonsgP4vwaiKMn5utrcwWQ=="], + + "@radix-ui/react-toolbar": ["@radix-ui/react-toolbar@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-separator": "1.1.9", "@radix-ui/react-toggle-group": "1.1.12" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-4wHtJVdIgqMmEwUvxA0BYg/2JMRbt0L3+8UD8Ml/nhKkfXtiZcM8u/S15gQ5xj9YEd/0qlrm5bE805LsjQ+J8A=="], + + "@radix-ui/react-tooltip": ["@radix-ui/react-tooltip@1.2.9", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-popper": "1.3.0", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-slot": "1.2.5", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-visually-hidden": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-u6F9MmTtBSLkiXNVDrtB/yPCZarM9smNswC24YYLV/M+bth6J3Gs3vlJezEoFwKZvPvxhCpUYdUnOsNG/0XOlA=="], + + "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw=="], + + "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.3", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA=="], + + "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.3", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA=="], + + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.2", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw=="], + + "@radix-ui/react-use-is-hydrated": ["@radix-ui/react-use-is-hydrated@0.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A=="], + + "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA=="], + + "@radix-ui/react-use-previous": ["@radix-ui/react-use-previous@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw=="], + + "@radix-ui/react-use-rect": ["@radix-ui/react-use-rect@1.1.2", "", { "dependencies": { "@radix-ui/rect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw=="], + + "@radix-ui/react-use-size": ["@radix-ui/react-use-size@1.1.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w=="], + + "@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.2.5", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-tPcHNI3FajdDBFpl/Ez1m2WL0ufJqBKyHxMDBvKitopamK36WwBGOMicuMEZKkM5Wce41QxUyv6BsiqfrWBiGg=="], + + "@radix-ui/rect": ["@radix-ui/rect@1.1.2", "", {}, "sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA=="], + + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.3", "", { "os": "android", "cpu": "arm64" }, "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw=="], + + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA=="], + + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg=="], + + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g=="], + + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.3", "", { "os": "linux", "cpu": "arm" }, "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw=="], + + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw=="], + + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q=="], + + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.0.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg=="], + + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.0.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg=="], + + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg=="], + + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow=="], + + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg=="], + + "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.3", "", { "dependencies": { "@emnapi/core": "1.10.0", "@emnapi/runtime": "1.10.0", "@napi-rs/wasm-runtime": "^1.1.4" }, "cpu": "none" }, "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg=="], + + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g=="], + + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.3", "", { "os": "win32", "cpu": "x64" }, "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.3", "", {}, "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q=="], + + "@rollup/pluginutils": ["@rollup/pluginutils@5.4.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" } }, "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.61.1", "", { "os": "android", "cpu": "arm" }, "sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.61.1", "", { "os": "android", "cpu": "arm64" }, "sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.61.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.61.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.61.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.61.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.61.1", "", { "os": "linux", "cpu": "arm" }, "sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.61.1", "", { "os": "linux", "cpu": "arm" }, "sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.61.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.61.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.61.1", "", { "os": "linux", "cpu": "none" }, "sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.61.1", "", { "os": "linux", "cpu": "none" }, "sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.61.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.61.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.61.1", "", { "os": "linux", "cpu": "none" }, "sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.61.1", "", { "os": "linux", "cpu": "none" }, "sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.61.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.61.1", "", { "os": "linux", "cpu": "x64" }, "sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.61.1", "", { "os": "linux", "cpu": "x64" }, "sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.61.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.61.1", "", { "os": "none", "cpu": "arm64" }, "sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.61.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.61.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.61.1", "", { "os": "win32", "cpu": "x64" }, "sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.61.1", "", { "os": "win32", "cpu": "x64" }, "sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw=="], + + "@shikijs/core": ["@shikijs/core@1.29.2", "", { "dependencies": { "@shikijs/engine-javascript": "1.29.2", "@shikijs/engine-oniguruma": "1.29.2", "@shikijs/types": "1.29.2", "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.4" } }, "sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@1.29.2", "", { "dependencies": { "@shikijs/types": "1.29.2", "@shikijs/vscode-textmate": "^10.0.1", "oniguruma-to-es": "^2.2.0" } }, "sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A=="], + + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@1.29.2", "", { "dependencies": { "@shikijs/types": "1.29.2", "@shikijs/vscode-textmate": "^10.0.1" } }, "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA=="], + + "@shikijs/langs": ["@shikijs/langs@1.29.2", "", { "dependencies": { "@shikijs/types": "1.29.2" } }, "sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ=="], + + "@shikijs/rehype": ["@shikijs/rehype@1.29.2", "", { "dependencies": { "@shikijs/types": "1.29.2", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "1.29.2", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-sxi53HZe5XDz0s2UqF+BVN/kgHPMS9l6dcacM4Ra3ZDzCJa5rDGJ+Ukpk4LxdD1+MITBM6hoLbPfGv9StV8a5Q=="], + + "@shikijs/themes": ["@shikijs/themes@1.29.2", "", { "dependencies": { "@shikijs/types": "1.29.2" } }, "sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g=="], + + "@shikijs/transformers": ["@shikijs/transformers@1.29.2", "", { "dependencies": { "@shikijs/core": "1.29.2", "@shikijs/types": "1.29.2" } }, "sha512-NHQuA+gM7zGuxGWP9/Ub4vpbwrYCrho9nQCLcCPfOe3Yc7LOYwmSuhElI688oiqIXk9dlZwDiyAG9vPBTuPJMA=="], + + "@shikijs/twoslash": ["@shikijs/twoslash@1.29.2", "", { "dependencies": { "@shikijs/core": "1.29.2", "@shikijs/types": "1.29.2", "twoslash": "^0.2.12" } }, "sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g=="], + + "@shikijs/types": ["@shikijs/types@1.29.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw=="], + + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + + "@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="], + + "@tailwindcss/node": ["@tailwindcss/node@4.1.15", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.0", "lightningcss": "1.30.2", "magic-string": "^0.30.19", "source-map-js": "^1.2.1", "tailwindcss": "4.1.15" } }, "sha512-HF4+7QxATZWY3Jr8OlZrBSXmwT3Watj0OogeDvdUY/ByXJHQ+LBtqA2brDb3sBxYslIFx6UP94BJ4X6a4L9Bmw=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.15", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.15", "@tailwindcss/oxide-darwin-arm64": "4.1.15", "@tailwindcss/oxide-darwin-x64": "4.1.15", "@tailwindcss/oxide-freebsd-x64": "4.1.15", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.15", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.15", "@tailwindcss/oxide-linux-arm64-musl": "4.1.15", "@tailwindcss/oxide-linux-x64-gnu": "4.1.15", "@tailwindcss/oxide-linux-x64-musl": "4.1.15", "@tailwindcss/oxide-wasm32-wasi": "4.1.15", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.15", "@tailwindcss/oxide-win32-x64-msvc": "4.1.15" } }, "sha512-krhX+UOOgnsUuks2SR7hFafXmLQrKxB4YyRTERuCE59JlYL+FawgaAlSkOYmDRJdf1Q+IFNDMl9iRnBW7QBDfQ=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.15", "", { "os": "android", "cpu": "arm64" }, "sha512-TkUkUgAw8At4cBjCeVCRMc/guVLKOU1D+sBPrHt5uVcGhlbVKxrCaCW9OKUIBv1oWkjh4GbunD/u/Mf0ql6kEA=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.15", "", { "os": "darwin", "cpu": "arm64" }, "sha512-xt5XEJpn2piMSfvd1UFN6jrWXyaKCwikP4Pidcf+yfHTSzSpYhG3dcMktjNkQO3JiLCp+0bG0HoWGvz97K162w=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.15", "", { "os": "darwin", "cpu": "x64" }, "sha512-TnWaxP6Bx2CojZEXAV2M01Yl13nYPpp0EtGpUrY+LMciKfIXiLL2r/SiSRpagE5Fp2gX+rflp/Os1VJDAyqymg=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.15", "", { "os": "freebsd", "cpu": "x64" }, "sha512-quISQDWqiB6Cqhjc3iWptXVZHNVENsWoI77L1qgGEHNIdLDLFnw3/AfY7DidAiiCIkGX/MjIdB3bbBZR/G2aJg=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.15", "", { "os": "linux", "cpu": "arm" }, "sha512-ObG76+vPlab65xzVUQbExmDU9FIeYLQ5k2LrQdR2Ud6hboR+ZobXpDoKEYXf/uOezOfIYmy2Ta3w0ejkTg9yxg=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.15", "", { "os": "linux", "cpu": "arm64" }, "sha512-4WbBacRmk43pkb8/xts3wnOZMDKsPFyEH/oisCm2q3aLZND25ufvJKcDUpAu0cS+CBOL05dYa8D4U5OWECuH/Q=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.15", "", { "os": "linux", "cpu": "arm64" }, "sha512-AbvmEiteEj1nf42nE8skdHv73NoR+EwXVSgPY6l39X12Ex8pzOwwfi3Kc8GAmjsnsaDEbk+aj9NyL3UeyHcTLg=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.15", "", { "os": "linux", "cpu": "x64" }, "sha512-+rzMVlvVgrXtFiS+ES78yWgKqpThgV19ISKD58Ck+YO5pO5KjyxLt7AWKsWMbY0R9yBDC82w6QVGz837AKQcHg=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.15", "", { "os": "linux", "cpu": "x64" }, "sha512-fPdEy7a8eQN9qOIK3Em9D3TO1z41JScJn8yxl/76mp4sAXFDfV4YXxsiptJcOwy6bGR+70ZSwFIZhTXzQeqwQg=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.15", "", { "cpu": "none" }, "sha512-sJ4yd6iXXdlgIMfIBXuVGp/NvmviEoMVWMOAGxtxhzLPp9LOj5k0pMEMZdjeMCl4C6Up+RM8T3Zgk+BMQ0bGcQ=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.15", "", { "os": "win32", "cpu": "arm64" }, "sha512-sJGE5faXnNQ1iXeqmRin7Ds/ru2fgCiaQZQQz3ZGIDtvbkeV85rAZ0QJFMDg0FrqsffZG96H1U9AQlNBRLsHVg=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.15", "", { "os": "win32", "cpu": "x64" }, "sha512-NLeHE7jUV6HcFKS504bpOohyi01zPXi2PXmjFfkzTph8xRxDdxkRsXm/xDO5uV5K3brrE1cCwbUYmFUSHR3u1w=="], + + "@tailwindcss/vite": ["@tailwindcss/vite@4.1.15", "", { "dependencies": { "@tailwindcss/node": "4.1.15", "@tailwindcss/oxide": "4.1.15", "tailwindcss": "4.1.15" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-B6s60MZRTUil+xKoZoGe6i0Iar5VuW+pmcGlda2FX+guDuQ1G1sjiIy1W0frneVpeL/ZjZ4KEgWZHNrIm++2qA=="], + + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], + + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], + + "@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="], + + "@types/d3-array": ["@types/d3-array@3.2.2", "", {}, "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw=="], + + "@types/d3-axis": ["@types/d3-axis@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw=="], + + "@types/d3-brush": ["@types/d3-brush@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A=="], + + "@types/d3-chord": ["@types/d3-chord@3.0.6", "", {}, "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="], + + "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="], + + "@types/d3-contour": ["@types/d3-contour@3.0.6", "", { "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" } }, "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg=="], + + "@types/d3-delaunay": ["@types/d3-delaunay@6.0.4", "", {}, "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="], + + "@types/d3-dispatch": ["@types/d3-dispatch@3.0.7", "", {}, "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA=="], + + "@types/d3-drag": ["@types/d3-drag@3.0.7", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ=="], + + "@types/d3-dsv": ["@types/d3-dsv@3.0.7", "", {}, "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="], + + "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="], + + "@types/d3-fetch": ["@types/d3-fetch@3.0.7", "", { "dependencies": { "@types/d3-dsv": "*" } }, "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA=="], + + "@types/d3-force": ["@types/d3-force@3.0.10", "", {}, "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="], + + "@types/d3-format": ["@types/d3-format@3.0.4", "", {}, "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="], + + "@types/d3-geo": ["@types/d3-geo@3.1.0", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ=="], + + "@types/d3-hierarchy": ["@types/d3-hierarchy@3.1.7", "", {}, "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="], + + "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="], + + "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="], + + "@types/d3-polygon": ["@types/d3-polygon@3.0.2", "", {}, "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="], + + "@types/d3-quadtree": ["@types/d3-quadtree@3.0.6", "", {}, "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="], + + "@types/d3-random": ["@types/d3-random@3.0.3", "", {}, "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="], + + "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="], + + "@types/d3-scale-chromatic": ["@types/d3-scale-chromatic@3.1.0", "", {}, "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="], + + "@types/d3-selection": ["@types/d3-selection@3.0.11", "", {}, "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w=="], + + "@types/d3-shape": ["@types/d3-shape@3.1.8", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w=="], + + "@types/d3-time": ["@types/d3-time@3.0.4", "", {}, "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="], + + "@types/d3-time-format": ["@types/d3-time-format@4.0.3", "", {}, "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="], + + "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="], + + "@types/d3-transition": ["@types/d3-transition@3.0.9", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg=="], + + "@types/d3-zoom": ["@types/d3-zoom@3.0.8", "", { "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" } }, "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw=="], + + "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], + + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + + "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + + "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + + "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/mdx": ["@types/mdx@2.0.14", "", {}, "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg=="], + + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + + "@types/node": ["@types/node@25.9.2", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw=="], + + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + + "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@typescript/vfs": ["@typescript/vfs@1.6.4", "", { "dependencies": { "debug": "^4.4.3" }, "peerDependencies": { "typescript": "*" } }, "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ=="], + + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.1", "", {}, "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ=="], + + "@upsetjs/venn.js": ["@upsetjs/venn.js@2.0.0", "", { "optionalDependencies": { "d3-selection": "^3.0.0", "d3-transition": "^3.0.1" } }, "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw=="], + + "@vanilla-extract/babel-plugin-debug-ids": ["@vanilla-extract/babel-plugin-debug-ids@1.2.2", "", { "dependencies": { "@babel/core": "^7.23.9" } }, "sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw=="], + + "@vanilla-extract/compiler": ["@vanilla-extract/compiler@0.7.0", "", { "dependencies": { "@vanilla-extract/css": "^1.20.1", "@vanilla-extract/integration": "^8.0.9", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", "vite-node": "^3.2.2 || ^5.0.0 || ^6.0.0" } }, "sha512-rZQ40HVmsxfGLjoflwwsaUBLfpbpKDoZC19oiDA0FHq4LdrYtyVbFkc0MfqkNo/qBCvaZfsRezCqk0QQxCqZ8w=="], + + "@vanilla-extract/css": ["@vanilla-extract/css@1.20.1", "", { "dependencies": { "@emotion/hash": "^0.9.0", "@vanilla-extract/private": "^1.0.9", "css-what": "^6.1.0", "csstype": "^3.2.3", "dedent": "^1.5.3", "deep-object-diff": "^1.1.9", "deepmerge": "^4.2.2", "lru-cache": "^10.4.3", "media-query-parser": "^2.0.2", "modern-ahocorasick": "^1.0.0", "picocolors": "^1.0.0" } }, "sha512-5I9RNo5uZW9tsBnqrWzJqELegOqTHBrZyDFnES0gR9gJJHBB9dom1N0bwITM9tKwBcfKrTX4a6DHVeQdJ2ubQA=="], + + "@vanilla-extract/dynamic": ["@vanilla-extract/dynamic@2.1.5", "", { "dependencies": { "@vanilla-extract/private": "^1.0.9" } }, "sha512-QGIFGb1qyXQkbzx6X6i3+3LMc/iv/ZMBttMBL+Wm/DetQd36KsKsFg5CtH3qy+1hCA/5w93mEIIAiL4fkM8ycw=="], + + "@vanilla-extract/integration": ["@vanilla-extract/integration@8.0.10", "", { "dependencies": { "@babel/core": "^7.23.9", "@babel/plugin-syntax-typescript": "^7.23.3", "@vanilla-extract/babel-plugin-debug-ids": "^1.2.2", "@vanilla-extract/css": "^1.20.1", "dedent": "^1.5.3", "esbuild": "npm:esbuild@>=0.17.6 <0.29.0", "eval": "0.1.8", "find-up": "^5.0.0", "javascript-stringify": "^2.0.1", "mlly": "^1.4.2" } }, "sha512-01IB5gbrgTe8IIrtfRXXTmACl5D8Enzqp2cKbCWaMKXmnoilXXVCPbJoA96q88PXkNDXsXepCxUugMvEmL3c7A=="], + + "@vanilla-extract/private": ["@vanilla-extract/private@1.0.9", "", {}, "sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA=="], + + "@vanilla-extract/vite-plugin": ["@vanilla-extract/vite-plugin@5.2.2", "", { "dependencies": { "@vanilla-extract/compiler": "^0.7.0", "@vanilla-extract/integration": "^8.0.9" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-AUyB4fDR2b/Mo0lcXhhlf6RxnDPYwFMyKKopalJ4BwQNKYzZSoTwHJ1PLPO9SKhpz7lzXc0Z18GHQZOewzl3YA=="], + + "@vitejs/plugin-react": ["@vitejs/plugin-react@5.2.0", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-rc.3", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw=="], + + "acorn": ["acorn@8.16.0", "", { "bin": "bin/acorn" }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], + + "astring": ["astring@1.9.0", "", { "bin": "bin/astring" }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], + + "autoprefixer": ["autoprefixer@10.5.0", "", { "dependencies": { "browserslist": "^4.28.2", "caniuse-lite": "^1.0.30001787", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": "bin/autoprefixer" }, "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong=="], + + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.35", "", { "bin": "dist/cli.cjs" }, "sha512-honAfLBde0HAFLdNyBEfuuENkF6zR+ozxqxa/2zJKHBe1qzLqyTSeRKpdPEHAP03rlDGyQOPnCSxnVpVqQo9Mg=="], + + "bcp-47-match": ["bcp-47-match@2.0.3", "", {}, "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ=="], + + "bl": ["bl@5.1.0", "", { "dependencies": { "buffer": "^6.0.3", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ=="], + + "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], + + "browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": "cli.js" }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="], + + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + + "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], + + "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001797", "", {}, "sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w=="], + + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + + "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + + "chroma-js": ["chroma-js@3.2.0", "", {}, "sha512-os/OippSlX1RlWWr+QDPcGUZs0uoqr32urfxESG9U93lhUfbnlyckte84Q8P1UQY/qth983AS1JONKmLS4T0nw=="], + + "cli-cursor": ["cli-cursor@4.0.0", "", { "dependencies": { "restore-cursor": "^4.0.0" } }, "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg=="], + + "cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "collapse-white-space": ["collapse-white-space@2.1.0", "", {}, "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw=="], + + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + + "compressible": ["compressible@2.0.18", "", { "dependencies": { "mime-db": ">= 1.43.0 < 2" } }, "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="], + + "compression": ["compression@1.8.1", "", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w=="], + + "confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], + + "cose-base": ["cose-base@1.0.3", "", { "dependencies": { "layout-base": "^1.0.0" } }, "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg=="], + + "create-vocs": ["create-vocs@1.0.0", "", { "dependencies": { "@clack/prompts": "^0.7.0", "cac": "^6.7.14", "detect-package-manager": "^3.0.2", "fs-extra": "^11.3.0", "picocolors": "^1.1.1" }, "bin": "_lib/bin.js" }, "sha512-Lv1Bd3WZEgwG4nrogkM54m8viW+TWPlGivLyEi7aNb3cuKPsEfMDZ/kTbo87fzOGtsZ2yh7scO54ZmVhhgBgTw=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "css-selector-parser": ["css-selector-parser@3.3.0", "", {}, "sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g=="], + + "css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "cytoscape": ["cytoscape@3.34.0", "", {}, "sha512-62rNSrioXw93uliKFBwjukeQyeWwH2PqDrTac31r2P6464u3AUvTk0xS4LVvT251g7IgkFunrI48ZEZGjywSOg=="], + + "cytoscape-cose-bilkent": ["cytoscape-cose-bilkent@4.1.0", "", { "dependencies": { "cose-base": "^1.0.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ=="], + + "cytoscape-fcose": ["cytoscape-fcose@2.2.0", "", { "dependencies": { "cose-base": "^2.2.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ=="], + + "d3": ["d3@7.9.0", "", { "dependencies": { "d3-array": "3", "d3-axis": "3", "d3-brush": "3", "d3-chord": "3", "d3-color": "3", "d3-contour": "4", "d3-delaunay": "6", "d3-dispatch": "3", "d3-drag": "3", "d3-dsv": "3", "d3-ease": "3", "d3-fetch": "3", "d3-force": "3", "d3-format": "3", "d3-geo": "3", "d3-hierarchy": "3", "d3-interpolate": "3", "d3-path": "3", "d3-polygon": "3", "d3-quadtree": "3", "d3-random": "3", "d3-scale": "4", "d3-scale-chromatic": "3", "d3-selection": "3", "d3-shape": "3", "d3-time": "3", "d3-time-format": "4", "d3-timer": "3", "d3-transition": "3", "d3-zoom": "3" } }, "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA=="], + + "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], + + "d3-axis": ["d3-axis@3.0.0", "", {}, "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw=="], + + "d3-brush": ["d3-brush@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "3", "d3-transition": "3" } }, "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ=="], + + "d3-chord": ["d3-chord@3.0.1", "", { "dependencies": { "d3-path": "1 - 3" } }, "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g=="], + + "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], + + "d3-contour": ["d3-contour@4.0.2", "", { "dependencies": { "d3-array": "^3.2.0" } }, "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA=="], + + "d3-delaunay": ["d3-delaunay@6.0.4", "", { "dependencies": { "delaunator": "5" } }, "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A=="], + + "d3-dispatch": ["d3-dispatch@3.0.1", "", {}, "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="], + + "d3-drag": ["d3-drag@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" } }, "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg=="], + + "d3-dsv": ["d3-dsv@3.0.1", "", { "dependencies": { "commander": "7", "iconv-lite": "0.6", "rw": "1" }, "bin": { "csv2json": "bin/dsv2json.js", "csv2tsv": "bin/dsv2dsv.js", "dsv2dsv": "bin/dsv2dsv.js", "dsv2json": "bin/dsv2json.js", "json2csv": "bin/json2dsv.js", "json2dsv": "bin/json2dsv.js", "json2tsv": "bin/json2dsv.js", "tsv2csv": "bin/dsv2dsv.js", "tsv2json": "bin/dsv2json.js" } }, "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q=="], + + "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="], + + "d3-fetch": ["d3-fetch@3.0.1", "", { "dependencies": { "d3-dsv": "1 - 3" } }, "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw=="], + + "d3-force": ["d3-force@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", "d3-timer": "1 - 3" } }, "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg=="], + + "d3-format": ["d3-format@3.1.2", "", {}, "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg=="], + + "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], + + "d3-hierarchy": ["d3-hierarchy@3.1.2", "", {}, "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="], + + "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="], + + "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="], + + "d3-polygon": ["d3-polygon@3.0.1", "", {}, "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg=="], + + "d3-quadtree": ["d3-quadtree@3.0.1", "", {}, "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="], + + "d3-random": ["d3-random@3.0.1", "", {}, "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="], + + "d3-sankey": ["d3-sankey@0.12.3", "", { "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" } }, "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ=="], + + "d3-scale": ["d3-scale@4.0.2", "", { "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", "d3-interpolate": "1.2.0 - 3", "d3-time": "2.1.1 - 3", "d3-time-format": "2 - 4" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="], + + "d3-scale-chromatic": ["d3-scale-chromatic@3.1.0", "", { "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" } }, "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ=="], + + "d3-selection": ["d3-selection@3.0.0", "", {}, "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="], + + "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="], + + "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="], + + "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="], + + "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], + + "d3-transition": ["d3-transition@3.0.1", "", { "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", "d3-ease": "1 - 3", "d3-interpolate": "1 - 3", "d3-timer": "1 - 3" }, "peerDependencies": { "d3-selection": "2 - 3" } }, "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w=="], + + "d3-zoom": ["d3-zoom@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "2 - 3", "d3-transition": "2 - 3" } }, "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="], + + "dagre-d3-es": ["dagre-d3-es@7.0.14", "", { "dependencies": { "d3": "^7.9.0", "lodash-es": "^4.17.21" } }, "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg=="], + + "dayjs": ["dayjs@1.11.21", "", {}, "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA=="], + + "debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + + "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], + + "dedent": ["dedent@1.7.2", "", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA=="], + + "deep-object-diff": ["deep-object-diff@1.1.9", "", {}, "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA=="], + + "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], + + "delaunator": ["delaunator@5.1.0", "", { "dependencies": { "robust-predicates": "^3.0.2" } }, "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ=="], + + "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "destroy": ["destroy@1.2.0", "", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], + + "detect-package-manager": ["detect-package-manager@3.0.2", "", { "dependencies": { "execa": "^5.1.1" } }, "sha512-8JFjJHutStYrfWwzfretQoyNGoZVW1Fsrp4JO9spa7h/fBfwgTMEIy4/LBzRDGsxwVPHU0q+T9YvwLDJoOApLQ=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "direction": ["direction@2.0.1", "", { "bin": "cli.js" }, "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA=="], + + "dompurify": ["dompurify@3.4.8", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-yb1cEmaOum7wFvOCSQxyfgVlv5D47Rc30iZWoMpbDIWTnJ6grDDQyu2KFJzB2k7u0pMuJcQ1zphH//fFnw2tjQ=="], + + "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], + + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.371", "", {}, "sha512-e9htk9mAYL6AzmkEhSvVVw7IWGSBJ/Bqdn2eRyRLrj1g6sncN4WbFt5qnILYoCktktr45pyjIrOiRvBThQ808w=="], + + "emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "emoji-regex-xs": ["emoji-regex-xs@1.0.0", "", {}, "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg=="], + + "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + + "enhanced-resolve": ["enhanced-resolve@5.23.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA=="], + + "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + + "es-module-lexer": ["es-module-lexer@2.1.0", "", {}, "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ=="], + + "es-toolkit": ["es-toolkit@1.47.0", "", {}, "sha512-n1GuoD0WEQZMBk5tttoZSqwgyLx01oqa5XsBmCHwPyNe1S9jPBEmtR2pSgp2kJuWE3ciFZ6yRHmY4pM4C3OOkw=="], + + "esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="], + + "esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="], + + "esbuild": ["esbuild@0.27.7", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.7", "@esbuild/android-arm": "0.27.7", "@esbuild/android-arm64": "0.27.7", "@esbuild/android-x64": "0.27.7", "@esbuild/darwin-arm64": "0.27.7", "@esbuild/darwin-x64": "0.27.7", "@esbuild/freebsd-arm64": "0.27.7", "@esbuild/freebsd-x64": "0.27.7", "@esbuild/linux-arm": "0.27.7", "@esbuild/linux-arm64": "0.27.7", "@esbuild/linux-ia32": "0.27.7", "@esbuild/linux-loong64": "0.27.7", "@esbuild/linux-mips64el": "0.27.7", "@esbuild/linux-ppc64": "0.27.7", "@esbuild/linux-riscv64": "0.27.7", "@esbuild/linux-s390x": "0.27.7", "@esbuild/linux-x64": "0.27.7", "@esbuild/netbsd-arm64": "0.27.7", "@esbuild/netbsd-x64": "0.27.7", "@esbuild/openbsd-arm64": "0.27.7", "@esbuild/openbsd-x64": "0.27.7", "@esbuild/openharmony-arm64": "0.27.7", "@esbuild/sunos-x64": "0.27.7", "@esbuild/win32-arm64": "0.27.7", "@esbuild/win32-ia32": "0.27.7", "@esbuild/win32-x64": "0.27.7" }, "bin": "bin/esbuild" }, "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], + + "escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + + "estree-util-attach-comments": ["estree-util-attach-comments@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw=="], + + "estree-util-build-jsx": ["estree-util-build-jsx@3.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-walker": "^3.0.0" } }, "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ=="], + + "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="], + + "estree-util-scope": ["estree-util-scope@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" } }, "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ=="], + + "estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="], + + "estree-util-value-to-estree": ["estree-util-value-to-estree@3.5.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ=="], + + "estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="], + + "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + + "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], + + "eval": ["eval@0.1.8", "", { "dependencies": { "@types/node": "*", "require-like": ">= 0.1.1" } }, "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw=="], + + "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=="], + + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "fault": ["fault@2.0.1", "", { "dependencies": { "format": "^0.2.0" } }, "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "format": ["format@0.2.2", "", {}, "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww=="], + + "fraction.js": ["fraction.js@5.3.4", "", {}, "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="], + + "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], + + "fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], + + "fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], + + "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], + + "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "hachure-fill": ["hachure-fill@0.5.2", "", {}, "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg=="], + + "hast-util-classnames": ["hast-util-classnames@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-tI3JjoGDEBVorMAWK4jNRsfLMYmih1BUOG3VV36pH36njs1IEl7xkNrVTD2mD2yYHmQCa5R/fj61a8IAF4bRaQ=="], + + "hast-util-from-dom": ["hast-util-from-dom@5.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hastscript": "^9.0.0", "web-namespaces": "^2.0.0" } }, "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q=="], + + "hast-util-from-html": ["hast-util-from-html@2.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="], + + "hast-util-from-html-isomorphic": ["hast-util-from-html-isomorphic@2.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-dom": "^5.0.0", "hast-util-from-html": "^2.0.0", "unist-util-remove-position": "^5.0.0" } }, "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw=="], + + "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], + + "hast-util-has-property": ["hast-util-has-property@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA=="], + + "hast-util-heading-rank": ["hast-util-heading-rank@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA=="], + + "hast-util-is-element": ["hast-util-is-element@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g=="], + + "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], + + "hast-util-select": ["hast-util-select@6.0.4", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "bcp-47-match": "^2.0.0", "comma-separated-tokens": "^2.0.0", "css-selector-parser": "^3.0.0", "devlop": "^1.0.0", "direction": "^2.0.0", "hast-util-has-property": "^3.0.0", "hast-util-to-string": "^3.0.0", "hast-util-whitespace": "^3.0.0", "nth-check": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw=="], + + "hast-util-to-estree": ["hast-util-to-estree@3.1.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + + "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="], + + "hast-util-to-string": ["hast-util-to-string@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A=="], + + "hast-util-to-text": ["hast-util-to-text@4.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "hast-util-is-element": "^3.0.0", "unist-util-find-after": "^5.0.0" } }, "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A=="], + + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "hastscript": ["hastscript@8.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw=="], + + "hono": ["hono@4.12.25", "", {}, "sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ=="], + + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + + "http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + + "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], + + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], + + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], + + "is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], + + "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], + + "is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="], + + "is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="], + + "is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + + "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], + + "is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "javascript-stringify": ["javascript-stringify@2.1.0", "", {}, "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg=="], + + "jiti": ["jiti@2.7.0", "", { "bin": "lib/jiti-cli.mjs" }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": "bin/jsesc" }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json5": ["json5@2.2.3", "", { "bin": "lib/cli.js" }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="], + + "katex": ["katex@0.16.47", "", { "dependencies": { "commander": "^8.3.0" }, "bin": "cli.js" }, "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg=="], + + "khroma": ["khroma@2.1.0", "", {}, "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="], + + "layout-base": ["layout-base@1.0.2", "", {}, "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="], + + "lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="], + + "log-symbols": ["log-symbols@5.1.0", "", { "dependencies": { "chalk": "^5.0.0", "is-unicode-supported": "^1.1.0" } }, "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA=="], + + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + + "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "lucide-react": ["lucide-react@0.468.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "sha512-6koYRhnM2N0GGZIdXzSeiNwguv1gt/FAjZOiPl76roBi3xKEXa4WmfpxgQwTTL4KipXjefrnf3oV4IsYhi4JFA=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "mark.js": ["mark.js@8.11.1", "", {}, "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ=="], + + "markdown-extensions": ["markdown-extensions@2.0.0", "", {}, "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="], + + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], + + "marked": ["marked@16.4.2", "", { "bin": "bin/marked.js" }, "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA=="], + + "mdast-util-directive": ["mdast-util-directive@3.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q=="], + + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], + + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.3", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q=="], + + "mdast-util-frontmatter": ["mdast-util-frontmatter@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "escape-string-regexp": "^5.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-extension-frontmatter": "^2.0.0" } }, "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA=="], + + "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="], + + "mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="], + + "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="], + + "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="], + + "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="], + + "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="], + + "mdast-util-mdx": ["mdast-util-mdx@3.0.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w=="], + + "mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="], + + "mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="], + + "mdast-util-mdxjs-esm": ["mdast-util-mdxjs-esm@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg=="], + + "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], + + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], + + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], + + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], + + "media-query-parser": ["media-query-parser@2.0.2", "", { "dependencies": { "@babel/runtime": "^7.12.5" } }, "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w=="], + + "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], + + "mermaid": ["mermaid@11.15.0", "", { "dependencies": { "@braintree/sanitize-url": "^7.1.1", "@iconify/utils": "^3.0.2", "@mermaid-js/parser": "^1.1.1", "@types/d3": "^7.4.3", "@upsetjs/venn.js": "^2.0.0", "cytoscape": "^3.33.1", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.14", "dayjs": "^1.11.19", "dompurify": "^3.3.1", "es-toolkit": "^1.45.1", "katex": "^0.16.25", "khroma": "^2.1.0", "marked": "^16.3.0", "roughjs": "^4.6.6", "stylis": "^4.3.6", "ts-dedent": "^2.2.0", "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0" } }, "sha512-pTMbcf3rWdtLiYGpmoTjHEpeY8seiy6sR+9nD7LOs8KfUbHE4lOUAprTRqRAcWSQ6MQpdX+YEsxShtGsINtPtw=="], + + "mermaid-isomorphic": ["mermaid-isomorphic@3.1.0", "", { "dependencies": { "@fortawesome/fontawesome-free": "^6.0.0", "katex": "^0.16.0", "mermaid": "^11.0.0" }, "peerDependencies": { "playwright": "1" } }, "sha512-mzrvfEVjnJIkJlEqxp3eMuR1wS0TeLCH1VK5E/T5yzWaBwI3JqjJuw70yUIThSCDJ5bRs6O3rgfp00oBAbvSeQ=="], + + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], + + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], + + "micromark-extension-directive": ["micromark-extension-directive@3.0.2", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "parse-entities": "^4.0.0" } }, "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA=="], + + "micromark-extension-frontmatter": ["micromark-extension-frontmatter@2.0.0", "", { "dependencies": { "fault": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg=="], + + "micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="], + + "micromark-extension-gfm-autolink-literal": ["micromark-extension-gfm-autolink-literal@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw=="], + + "micromark-extension-gfm-footnote": ["micromark-extension-gfm-footnote@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw=="], + + "micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="], + + "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg=="], + + "micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="], + + "micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="], + + "micromark-extension-mdx-expression": ["micromark-extension-mdx-expression@3.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q=="], + + "micromark-extension-mdx-jsx": ["micromark-extension-mdx-jsx@3.0.2", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ=="], + + "micromark-extension-mdx-md": ["micromark-extension-mdx-md@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ=="], + + "micromark-extension-mdxjs": ["micromark-extension-mdxjs@3.0.0", "", { "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", "micromark-extension-mdx-expression": "^3.0.0", "micromark-extension-mdx-jsx": "^3.0.0", "micromark-extension-mdx-md": "^2.0.0", "micromark-extension-mdxjs-esm": "^3.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ=="], + + "micromark-extension-mdxjs-esm": ["micromark-extension-mdxjs-esm@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A=="], + + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], + + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], + + "micromark-factory-mdx-expression": ["micromark-factory-mdx-expression@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ=="], + + "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], + + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], + + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], + + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], + + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], + + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], + + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-events-to-acorn": ["micromark-util-events-to-acorn@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg=="], + + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], + + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], + + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + + "mime": ["mime@1.6.0", "", { "bin": "cli.js" }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], + + "mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], + + "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + + "mini-svg-data-uri": ["mini-svg-data-uri@1.4.4", "", { "bin": "cli.js" }, "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg=="], + + "minisearch": ["minisearch@7.2.0", "", {}, "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg=="], + + "mlly": ["mlly@1.8.2", "", { "dependencies": { "acorn": "^8.16.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.3" } }, "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA=="], + + "modern-ahocorasick": ["modern-ahocorasick@1.1.0", "", {}, "sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ=="], + + "ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + + "nanoid": ["nanoid@3.3.12", "", { "bin": "bin/nanoid.cjs" }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], + + "negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], + + "node-releases": ["node-releases@2.0.47", "", {}, "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og=="], + + "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], + + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + + "nuqs": ["nuqs@2.8.9", "", { "dependencies": { "@standard-schema/spec": "1.0.0" }, "peerDependencies": { "@remix-run/react": ">=2", "@tanstack/react-router": "^1", "next": ">=14.2.0", "react": ">=18.2.0 || ^19.0.0-0", "react-router": "^5 || ^6 || ^7", "react-router-dom": "^5 || ^6 || ^7" }, "optionalPeers": ["@remix-run/react", "@tanstack/react-router", "next", "react-router-dom"] }, "sha512-8ou6AEwsxMWSYo2qkfZtYFVzngwbKmg4c00HVxC1fF6CEJv3Fwm6eoZmfVPALB+vw8Udo7KL5uy96PFcYe1BIQ=="], + + "obug": ["obug@2.1.2", "", {}, "sha512-AWGB9WFcRXOQs48Z/udjI5ZcZMHXwX8XPByNpOydgcGsDLIzjGizhoMWJyKAWze7AVW/2W1i+/gPX4YtKe5cyg=="], + + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], + + "on-headers": ["on-headers@1.1.0", "", {}, "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A=="], + + "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + + "oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="], + + "ora": ["ora@7.0.1", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^4.0.0", "cli-spinners": "^2.9.0", "is-interactive": "^2.0.0", "is-unicode-supported": "^1.3.0", "log-symbols": "^5.1.0", "stdin-discarder": "^0.1.0", "string-width": "^6.1.0", "strip-ansi": "^7.1.0" } }, "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw=="], + + "p-limit": ["p-limit@5.0.0", "", { "dependencies": { "yocto-queue": "^1.0.0" } }, "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="], + + "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], + + "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + + "path-data-parser": ["path-data-parser@0.1.0", "", {}, "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], + + "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=="], + + "playwright": ["playwright@1.60.0", "", { "dependencies": { "playwright-core": "1.60.0" }, "optionalDependencies": { "fsevents": "2.3.2" }, "bin": "cli.js" }, "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA=="], + + "playwright-core": ["playwright-core@1.60.0", "", { "bin": "cli.js" }, "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA=="], + + "points-on-curve": ["points-on-curve@0.2.0", "", {}, "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A=="], + + "points-on-path": ["points-on-path@0.2.1", "", { "dependencies": { "path-data-parser": "0.1.0", "points-on-curve": "0.2.0" } }, "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g=="], + + "postcss": ["postcss@8.5.15", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A=="], + + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + + "property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], + + "radix-ui": ["radix-ui@1.5.0", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-accessible-icon": "1.1.9", "@radix-ui/react-accordion": "1.2.13", "@radix-ui/react-alert-dialog": "1.1.16", "@radix-ui/react-arrow": "1.1.9", "@radix-ui/react-aspect-ratio": "1.1.9", "@radix-ui/react-avatar": "1.1.12", "@radix-ui/react-checkbox": "1.3.4", "@radix-ui/react-collapsible": "1.1.13", "@radix-ui/react-collection": "1.1.9", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-context-menu": "2.3.0", "@radix-ui/react-dialog": "1.1.16", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.12", "@radix-ui/react-dropdown-menu": "2.1.17", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.9", "@radix-ui/react-form": "0.1.9", "@radix-ui/react-hover-card": "1.1.16", "@radix-ui/react-label": "2.1.9", "@radix-ui/react-menu": "2.1.17", "@radix-ui/react-menubar": "1.1.17", "@radix-ui/react-navigation-menu": "1.2.15", "@radix-ui/react-one-time-password-field": "0.1.9", "@radix-ui/react-password-toggle-field": "0.1.4", "@radix-ui/react-popover": "1.1.16", "@radix-ui/react-popper": "1.3.0", "@radix-ui/react-portal": "1.1.11", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.5", "@radix-ui/react-progress": "1.1.9", "@radix-ui/react-radio-group": "1.4.0", "@radix-ui/react-roving-focus": "1.1.12", "@radix-ui/react-scroll-area": "1.2.11", "@radix-ui/react-select": "2.3.0", "@radix-ui/react-separator": "1.1.9", "@radix-ui/react-slider": "1.4.0", "@radix-ui/react-slot": "1.2.5", "@radix-ui/react-switch": "1.3.0", "@radix-ui/react-tabs": "1.1.14", "@radix-ui/react-toast": "1.2.16", "@radix-ui/react-toggle": "1.1.11", "@radix-ui/react-toggle-group": "1.1.12", "@radix-ui/react-toolbar": "1.1.12", "@radix-ui/react-tooltip": "1.2.9", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3", "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-escape-keydown": "1.1.2", "@radix-ui/react-use-is-hydrated": "0.1.1", "@radix-ui/react-use-layout-effect": "1.1.2", "@radix-ui/react-use-size": "1.1.2", "@radix-ui/react-visually-hidden": "1.2.5" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-Nzh2HNpClgB31FBHRqt2xG8XNUfVfQRpf34hACC5PNrXTd5JdXdqOXwLs3BL+D8CNYiNQiJiT8QGr5Q4vq+00w=="], + + "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], + + "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], + + "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + + "react-intersection-observer": ["react-intersection-observer@9.16.0", "", { "peerDependencies": { "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-w9nJSEp+DrW9KmQmeWHQyfaP6b03v+TdXynaoA964Wxt7mdR3An11z4NNCQgL4gKSK7y1ver2Fq+JKH6CWEzUA=="], + + "react-refresh": ["react-refresh@0.18.0", "", {}, "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw=="], + + "react-remove-scroll": ["react-remove-scroll@2.7.2", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q=="], + + "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], + + "react-router": ["react-router@7.17.0", "", { "dependencies": { "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" } }, "sha512-FDELK7rTMlCHO5+reyXsPlmfr7N1F91lPHsWYfMEGQm/KQ+F4JFM8jGoeQDmDvdTs93Fw9aSilH+uKRb4/jXvQ=="], + + "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], + + "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=="], + + "recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="], + + "recma-jsx": ["recma-jsx@1.0.1", "", { "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", "recma-parse": "^1.0.0", "recma-stringify": "^1.0.0", "unified": "^11.0.0" }, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w=="], + + "recma-parse": ["recma-parse@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ=="], + + "recma-stringify": ["recma-stringify@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g=="], + + "regex": ["regex@5.1.1", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw=="], + + "regex-recursion": ["regex-recursion@5.1.1", "", { "dependencies": { "regex": "^5.1.1", "regex-utilities": "^2.3.0" } }, "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + + "rehype-autolink-headings": ["rehype-autolink-headings@7.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-heading-rank": "^3.0.0", "hast-util-is-element": "^3.0.0", "unified": "^11.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw=="], + + "rehype-class-names": ["rehype-class-names@2.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-classnames": "^3.0.0", "hast-util-select": "^6.0.0", "unified": "^11.0.4" } }, "sha512-jldCIiAEvXKdq8hqr5f5PzNdIDkvHC6zfKhwta9oRoMu7bn0W7qLES/JrrjBvr9rKz3nJ8x4vY1EWI+dhjHVZQ=="], + + "rehype-mermaid": ["rehype-mermaid@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html-isomorphic": "^2.0.0", "hast-util-to-text": "^4.0.0", "mermaid-isomorphic": "^3.0.0", "mini-svg-data-uri": "^1.0.0", "space-separated-tokens": "^2.0.0", "unified": "^11.0.0", "unist-util-visit-parents": "^6.0.0", "vfile": "^6.0.0" }, "peerDependencies": { "playwright": "1" } }, "sha512-fxrD5E4Fa1WXUjmjNDvLOMT4XB1WaxcfycFIWiYU0yEMQhcTDElc9aDFnbDFRLxG1Cfo1I3mfD5kg4sjlWaB+Q=="], + + "rehype-recma": ["rehype-recma@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "hast-util-to-estree": "^3.0.0" } }, "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw=="], + + "rehype-slug": ["rehype-slug@6.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "github-slugger": "^2.0.0", "hast-util-heading-rank": "^3.0.0", "hast-util-to-string": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A=="], + + "remark-directive": ["remark-directive@3.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", "micromark-extension-directive": "^3.0.0", "unified": "^11.0.0" } }, "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A=="], + + "remark-frontmatter": ["remark-frontmatter@5.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-frontmatter": "^2.0.0", "micromark-extension-frontmatter": "^2.0.0", "unified": "^11.0.0" } }, "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ=="], + + "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], + + "remark-mdx": ["remark-mdx@3.1.1", "", { "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" } }, "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg=="], + + "remark-mdx-frontmatter": ["remark-mdx-frontmatter@5.2.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "estree-util-value-to-estree": "^3.0.0", "toml": "^3.0.0", "unified": "^11.0.0", "unist-util-mdx-define": "^1.0.0", "yaml": "^2.0.0" } }, "sha512-U/hjUYTkQqNjjMRYyilJgLXSPF65qbLPdoESOkXyrwz2tVyhAnm4GUKhfXqOOS9W34M3545xEMq+aMpHgVjEeQ=="], + + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], + + "remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="], + + "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], + + "require-like": ["require-like@0.1.2", "", {}, "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A=="], + + "restore-cursor": ["restore-cursor@4.0.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg=="], + + "robust-predicates": ["robust-predicates@3.0.3", "", {}, "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA=="], + + "rolldown": ["rolldown@1.0.3", "", { "dependencies": { "@oxc-project/types": "=0.133.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.3", "@rolldown/binding-darwin-arm64": "1.0.3", "@rolldown/binding-darwin-x64": "1.0.3", "@rolldown/binding-freebsd-x64": "1.0.3", "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", "@rolldown/binding-linux-arm64-gnu": "1.0.3", "@rolldown/binding-linux-arm64-musl": "1.0.3", "@rolldown/binding-linux-ppc64-gnu": "1.0.3", "@rolldown/binding-linux-s390x-gnu": "1.0.3", "@rolldown/binding-linux-x64-gnu": "1.0.3", "@rolldown/binding-linux-x64-musl": "1.0.3", "@rolldown/binding-openharmony-arm64": "1.0.3", "@rolldown/binding-wasm32-wasi": "1.0.3", "@rolldown/binding-win32-arm64-msvc": "1.0.3", "@rolldown/binding-win32-x64-msvc": "1.0.3" }, "bin": "bin/cli.mjs" }, "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g=="], + + "rollup": ["rollup@4.61.1", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.61.1", "@rollup/rollup-android-arm64": "4.61.1", "@rollup/rollup-darwin-arm64": "4.61.1", "@rollup/rollup-darwin-x64": "4.61.1", "@rollup/rollup-freebsd-arm64": "4.61.1", "@rollup/rollup-freebsd-x64": "4.61.1", "@rollup/rollup-linux-arm-gnueabihf": "4.61.1", "@rollup/rollup-linux-arm-musleabihf": "4.61.1", "@rollup/rollup-linux-arm64-gnu": "4.61.1", "@rollup/rollup-linux-arm64-musl": "4.61.1", "@rollup/rollup-linux-loong64-gnu": "4.61.1", "@rollup/rollup-linux-loong64-musl": "4.61.1", "@rollup/rollup-linux-ppc64-gnu": "4.61.1", "@rollup/rollup-linux-ppc64-musl": "4.61.1", "@rollup/rollup-linux-riscv64-gnu": "4.61.1", "@rollup/rollup-linux-riscv64-musl": "4.61.1", "@rollup/rollup-linux-s390x-gnu": "4.61.1", "@rollup/rollup-linux-x64-gnu": "4.61.1", "@rollup/rollup-linux-x64-musl": "4.61.1", "@rollup/rollup-openbsd-x64": "4.61.1", "@rollup/rollup-openharmony-arm64": "4.61.1", "@rollup/rollup-win32-arm64-msvc": "4.61.1", "@rollup/rollup-win32-ia32-msvc": "4.61.1", "@rollup/rollup-win32-x64-gnu": "4.61.1", "@rollup/rollup-win32-x64-msvc": "4.61.1", "fsevents": "~2.3.2" }, "bin": "dist/bin/rollup" }, "sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA=="], + + "roughjs": ["roughjs@4.6.6", "", { "dependencies": { "hachure-fill": "^0.5.2", "path-data-parser": "^0.1.0", "points-on-curve": "^0.2.0", "points-on-path": "^0.2.1" } }, "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ=="], + + "rw": ["rw@1.3.3", "", {}, "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="], + + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@6.3.1", "", { "bin": "bin/semver.js" }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "send": ["send@0.19.2", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "~0.5.2", "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "~2.4.1", "range-parser": "~1.2.1", "statuses": "~2.0.2" } }, "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg=="], + + "serve-static": ["serve-static@1.16.3", "", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "~0.19.1" } }, "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA=="], + + "set-cookie-parser": ["set-cookie-parser@2.7.2", "", {}, "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw=="], + + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "shiki": ["shiki@1.29.2", "", { "dependencies": { "@shikijs/core": "1.29.2", "@shikijs/engine-javascript": "1.29.2", "@shikijs/engine-oniguruma": "1.29.2", "@shikijs/langs": "1.29.2", "@shikijs/themes": "1.29.2", "@shikijs/types": "1.29.2", "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg=="], + + "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + + "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], + + "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + + "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + + "stdin-discarder": ["stdin-discarder@0.1.0", "", { "dependencies": { "bl": "^5.0.0" } }, "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ=="], + + "string-width": ["string-width@6.1.0", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^10.2.1", "strip-ansi": "^7.0.1" } }, "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ=="], + + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + + "strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + + "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], + + "style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="], + + "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], + + "stylis": ["stylis@4.4.0", "", {}, "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA=="], + + "tabbable": ["tabbable@6.4.0", "", {}, "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg=="], + + "tailwindcss": ["tailwindcss@4.1.15", "", {}, "sha512-k2WLnWkYFkdpRv+Oby3EBXIyQC8/s1HOFMBUViwtAh6Z5uAozeUSMQlIsn/c6Q2iJzqG6aJT3wdPaRNj70iYxQ=="], + + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + + "tinyexec": ["tinyexec@1.2.4", "", {}, "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg=="], + + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + + "toml": ["toml@3.0.0", "", {}, "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w=="], + + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + + "ts-dedent": ["ts-dedent@2.2.0", "", {}, "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "twoslash": ["twoslash@0.3.8", "", { "dependencies": { "@typescript/vfs": "^1.6.4", "twoslash-protocol": "0.3.8" }, "peerDependencies": { "typescript": "^5.5.0 || ^6.0.0" } }, "sha512-OeDz0kDl8sqPUN3nr7gqcvOs70f5lZsdhKYTX3/SgB9OvdadzzoYJI/4SBXhXV1HG8E9fLc+e17itoRYTxmoig=="], + + "twoslash-protocol": ["twoslash-protocol@0.3.8", "", {}, "sha512-HmvAHoiEviK8LqvAQyc9/irkdvwTUiR1fHmNwH/0gq8EHxyBt4PWVPixjEXg6wJu1u6yBrILEWXGK9Kw58/8yQ=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "ua-parser-js": ["ua-parser-js@1.0.41", "", { "bin": "script/cli.js" }, "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug=="], + + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], + + "undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], + + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + + "unist-util-find-after": ["unist-util-find-after@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-mdx-define": ["unist-util-mdx-define@1.1.2", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-9ncH7i7TN5Xn7/tzX5bE3rXgz1X/u877gYVAUB3mLeTKYJmQHmqKTDBi6BTGXV7AeolBCI9ErcVsOt2qryoD0g=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-position-from-estree": ["unist-util-position-from-estree@2.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ=="], + + "unist-util-remove-position": ["unist-util-remove-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + + "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": "cli.js" }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], + + "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "uuid": ["uuid@14.0.0", "", { "bin": "dist-node/bin/uuid" }, "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg=="], + + "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], + + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], + + "vfile-matter": ["vfile-matter@5.0.1", "", { "dependencies": { "vfile": "^6.0.0", "yaml": "^2.0.0" } }, "sha512-o6roP82AiX0XfkyTHyRCMXgHfltUNlXSEqCIS80f+mbAyiQBE2fxtDVMtseyytGx75sihiJFo/zR6r/4LTs2Cw=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + + "vite": ["vite@7.3.5", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx"], "bin": "bin/vite.js" }, "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww=="], + + "vite-node": ["vite-node@6.0.0", "", { "dependencies": { "cac": "^7.0.0", "es-module-lexer": "^2.0.0", "obug": "^2.1.1", "pathe": "^2.0.3", "vite": "^8.0.0" }, "bin": "dist/cli.mjs" }, "sha512-oj4PVrT+pDh6GYf5wfUXkcZyekYS8kKPfLPXVl8qe324Ec6l4K2DUKNadRbZ3LQl0qGcDz+PyOo7ZAh00Y+JjQ=="], + + "vocs": ["vocs@1.4.1", "", { "dependencies": { "@floating-ui/react": "^0.27.16", "@hono/node-server": "^1.19.5", "@mdx-js/mdx": "^3.1.1", "@mdx-js/react": "^3.1.1", "@mdx-js/rollup": "^3.1.1", "@noble/hashes": "^1.7.1", "@radix-ui/colors": "^3.0.0", "@radix-ui/react-accordion": "^1.2.3", "@radix-ui/react-dialog": "^1.1.6", "@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-label": "^2.1.2", "@radix-ui/react-navigation-menu": "^1.2.5", "@radix-ui/react-popover": "^1.1.6", "@radix-ui/react-tabs": "^1.1.3", "@shikijs/rehype": "^1", "@shikijs/transformers": "^1", "@shikijs/twoslash": "^1", "@tailwindcss/vite": "4.1.15", "@vanilla-extract/css": "^1.17.4", "@vanilla-extract/dynamic": "^2.1.5", "@vanilla-extract/vite-plugin": "^5.1.1", "@vitejs/plugin-react": "^5.0.4", "autoprefixer": "^10.4.21", "cac": "^6.7.14", "chroma-js": "^3.1.2", "clsx": "^2.1.1", "compression": "^1.8.1", "create-vocs": "^1.0.0-alpha.5", "cross-spawn": "^7.0.6", "fs-extra": "^11.3.2", "hastscript": "^8.0.0", "hono": "^4.10.3", "mark.js": "^8.11.1", "mdast-util-directive": "^3.1.0", "mdast-util-from-markdown": "^2.0.2", "mdast-util-frontmatter": "^2.0.1", "mdast-util-gfm": "^3.1.0", "mdast-util-mdx": "^3.0.0", "mdast-util-mdx-jsx": "^3.2.0", "mdast-util-to-hast": "^13.2.0", "mdast-util-to-markdown": "^2.1.2", "minisearch": "^7.2.0", "nuqs": "^2.7.2", "ora": "^7.0.1", "p-limit": "^5.0.0", "picomatch": "^4.0.3", "playwright": "^1.52.0", "postcss": "^8.5.2", "radix-ui": "^1.1.3", "react-intersection-observer": "^9.15.1", "react-router": "^7.9.4", "rehype-autolink-headings": "^7.1.0", "rehype-class-names": "^2.0.0", "rehype-mermaid": "^3.0.0", "rehype-slug": "^6.0.0", "remark-directive": "^3.0.1", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "remark-mdx": "^3.1.1", "remark-mdx-frontmatter": "^5.2.0", "remark-parse": "^11.0.0", "serve-static": "^1.16.2", "shiki": "^1", "toml": "^3.0.0", "twoslash": "~0.3.4", "ua-parser-js": "^1.0.40", "unified": "^11.0.5", "unist-util-visit": "^5.0.0", "vfile-matter": "^5.0.1", "vite": "^7.1.11", "yaml": "^2.8.1" }, "peerDependencies": { "react": "^19", "react-dom": "^19" }, "bin": "_lib/cli/index.js" }, "sha512-PwCODbht+/0f6wtAyz5czqdWaMX80KlxOc6Mkqfd0u6bboTZ+YcyBuZaiQwJ4lkDE6NvSrCosPVD5CxGyvtitg=="], + + "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "yaml": ["yaml@2.9.0", "", { "bin": "bin.mjs" }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="], + + "yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@babel/core/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "@babel/traverse/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "@shikijs/twoslash/twoslash": ["twoslash@0.2.12", "", { "dependencies": { "@typescript/vfs": "^1.6.0", "twoslash-protocol": "0.2.12" }, "peerDependencies": { "typescript": "*" } }, "sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw=="], + + "@typescript/vfs/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@vanilla-extract/integration/esbuild": ["esbuild@0.28.0", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.0", "@esbuild/android-arm": "0.28.0", "@esbuild/android-arm64": "0.28.0", "@esbuild/android-x64": "0.28.0", "@esbuild/darwin-arm64": "0.28.0", "@esbuild/darwin-x64": "0.28.0", "@esbuild/freebsd-arm64": "0.28.0", "@esbuild/freebsd-x64": "0.28.0", "@esbuild/linux-arm": "0.28.0", "@esbuild/linux-arm64": "0.28.0", "@esbuild/linux-ia32": "0.28.0", "@esbuild/linux-loong64": "0.28.0", "@esbuild/linux-mips64el": "0.28.0", "@esbuild/linux-ppc64": "0.28.0", "@esbuild/linux-riscv64": "0.28.0", "@esbuild/linux-s390x": "0.28.0", "@esbuild/linux-x64": "0.28.0", "@esbuild/netbsd-arm64": "0.28.0", "@esbuild/netbsd-x64": "0.28.0", "@esbuild/openbsd-arm64": "0.28.0", "@esbuild/openbsd-x64": "0.28.0", "@esbuild/openharmony-arm64": "0.28.0", "@esbuild/sunos-x64": "0.28.0", "@esbuild/win32-arm64": "0.28.0", "@esbuild/win32-ia32": "0.28.0", "@esbuild/win32-x64": "0.28.0" }, "bin": "bin/esbuild" }, "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw=="], + + "cytoscape-fcose/cose-base": ["cose-base@2.2.0", "", { "dependencies": { "layout-base": "^2.0.0" } }, "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g=="], + + "d3-dsv/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + + "d3-sankey/d3-array": ["d3-array@2.12.1", "", { "dependencies": { "internmap": "^1.0.0" } }, "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ=="], + + "d3-sankey/d3-shape": ["d3-shape@1.3.7", "", { "dependencies": { "d3-path": "1" } }, "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw=="], + + "hast-util-from-dom/hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + + "hast-util-from-parse5/hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + + "hast-util-from-parse5/property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "hast-util-select/property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "hast-util-to-estree/property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "hast-util-to-html/property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "hast-util-to-jsx-runtime/property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "micromark/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + + "rolldown/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], + + "send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + + "send/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "vite-node/cac": ["cac@7.0.0", "", {}, "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ=="], + + "vite-node/vite": ["vite@8.0.16", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.15", "rolldown": "1.0.3", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.18", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@vitejs/devtools", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx"], "bin": "bin/vite.js" }, "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw=="], + + "@babel/core/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@babel/traverse/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@shikijs/twoslash/twoslash/twoslash-protocol": ["twoslash-protocol@0.2.12", "", {}, "sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg=="], + + "@typescript/vfs/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@vanilla-extract/integration/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA=="], + + "@vanilla-extract/integration/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.28.0", "", { "os": "android", "cpu": "arm" }, "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ=="], + + "@vanilla-extract/integration/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.28.0", "", { "os": "android", "cpu": "arm64" }, "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw=="], + + "@vanilla-extract/integration/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.28.0", "", { "os": "android", "cpu": "x64" }, "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA=="], + + "@vanilla-extract/integration/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.28.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q=="], + + "@vanilla-extract/integration/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.28.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ=="], + + "@vanilla-extract/integration/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.28.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q=="], + + "@vanilla-extract/integration/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.28.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.28.0", "", { "os": "linux", "cpu": "arm" }, "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.28.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.28.0", "", { "os": "linux", "cpu": "ia32" }, "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.28.0", "", { "os": "linux", "cpu": "none" }, "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.28.0", "", { "os": "linux", "cpu": "none" }, "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.28.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.28.0", "", { "os": "linux", "cpu": "none" }, "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.28.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q=="], + + "@vanilla-extract/integration/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.28.0", "", { "os": "linux", "cpu": "x64" }, "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ=="], + + "@vanilla-extract/integration/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.28.0", "", { "os": "none", "cpu": "arm64" }, "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw=="], + + "@vanilla-extract/integration/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.28.0", "", { "os": "none", "cpu": "x64" }, "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw=="], + + "@vanilla-extract/integration/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.28.0", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g=="], + + "@vanilla-extract/integration/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.28.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA=="], + + "@vanilla-extract/integration/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.28.0", "", { "os": "none", "cpu": "arm64" }, "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w=="], + + "@vanilla-extract/integration/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.28.0", "", { "os": "sunos", "cpu": "x64" }, "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw=="], + + "@vanilla-extract/integration/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.28.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA=="], + + "@vanilla-extract/integration/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.28.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA=="], + + "@vanilla-extract/integration/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.28.0", "", { "os": "win32", "cpu": "x64" }, "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw=="], + + "cytoscape-fcose/cose-base/layout-base": ["layout-base@2.0.1", "", {}, "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="], + + "d3-sankey/d3-array/internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], + + "d3-sankey/d3-shape/d3-path": ["d3-path@1.0.9", "", {}, "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="], + + "hast-util-from-dom/hastscript/property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "micromark/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "p-locate/p-limit/yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + + "vite-node/vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "vite-node/vite/lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + + "vite-node/vite/lightningcss/lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + + "vite-node/vite/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + + "vite-node/vite/lightningcss/lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + + "vite-node/vite/lightningcss/lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + + "vite-node/vite/lightningcss/lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + + "vite-node/vite/lightningcss/lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + + "vite-node/vite/lightningcss/lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + + "vite-node/vite/lightningcss/lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + + "vite-node/vite/lightningcss/lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + + "vite-node/vite/lightningcss/lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + + "vite-node/vite/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + } +} diff --git a/docs/pages/cn/explanation/build-overview.mdx b/docs/pages/cn/explanation/build-overview.mdx index f8e2648..a20f947 100644 --- a/docs/pages/cn/explanation/build-overview.mdx +++ b/docs/pages/cn/explanation/build-overview.mdx @@ -1,25 +1,25 @@ --- source_path: explanation/build-overview.mdx -source_sha: 4b19d1f913597181cd62426d9b82ef8e91c4fae3 -title: "ๆฆ‚่งˆ" -description: "ๅœจ Stable ไธŠๆŽจๅ‡บไบงๅ“๏ผš้’ฑๅŒ…ๅ’Œ่ดฆๆˆทใ€ๆ”ฏไป˜ใ€ๆ™บ่ƒฝๅˆ็บฆๅ’Œ AI ไปฃ็†ใ€‚ไปŽๅฟซ้€Ÿๅ…ฅ้—จๅผ€ๅง‹๏ผŒๆˆ–่€…็›ดๆŽฅ่ทณ่ฝฌๅˆฐๆ‚จ้œ€่ฆ็š„ๅŠŸ่ƒฝใ€‚" +source_sha: 31130e61141a3d529f2c5ec7281240aa4a155e00 +title: "ๆฆ‚่ฟฐ" +description: "ๅœจ Stable ไธŠๅ‘ๅธƒ๏ผš้’ฑๅŒ…ๅ’Œ่ดฆๆˆทใ€ๆ”ฏไป˜ใ€ๆ™บ่ƒฝๅˆ็บฆๅ’Œ AI ไปฃ็†ใ€‚ไปŽๅฟซ้€Ÿๅ…ฅ้—จๅผ€ๅง‹๏ผŒๆˆ–่€…็›ดๆŽฅ่ทณ่ฝฌๅˆฐๆ‚จ้œ€่ฆ็š„ๅŠŸ่ƒฝใ€‚" diataxis: "explanation" --- -# ๆฆ‚่งˆ +# ๆฆ‚่ฟฐ -Stable ๆ–ฐๆ‰‹๏ผŸ่ฏทๅ…ˆ่ฟ่กŒ[ๅฟซ้€Ÿๅ…ฅ้—จ](/cn/tutorial/quick-start)ใ€‚ๅฎƒๅช้œ€ไบ”ๅˆ†้’Ÿ๏ผŒๅนถไผšๅ‘้€ไธ€็ฌ”ๆต‹่ฏ•็ฝ‘ไบคๆ˜“๏ผŒไปฅไพฟๆ ‡็ญพ้กต็š„ๅ…ถไฝ™้ƒจๅˆ†ๅฏไปฅ่ฟžๆŽฅๅˆฐๅฎƒใ€‚ +Stable ๆ–ฐๆ‰‹๏ผŸ่ฏทๅ…ˆ่ฟ่กŒ[ๅฟซ้€Ÿๅ…ฅ้—จ](/cn/tutorial/quick-start)ใ€‚ๅฎƒๅช้œ€ไบ”ๅˆ†้’Ÿ๏ผŒๅนถๅ‘้€ไธ€ไธชๆต‹่ฏ•็ฝ‘ไบคๆ˜“๏ผŒไปฅไพฟๅ…ถไฝ™้€‰้กนๅกๅฏไปฅๆ’ๅ…ฅใ€‚ ## ๆŽข็ดข -- [**่ดฆๆˆท**](/cn/explanation/accounts-overview)๏ผšๅˆ›ๅปบ้’ฑๅŒ…๏ผŒไฝฟ็”จ EIP-7702 ๆŽˆๆƒ EOA๏ผŒๅนถไธบ็”จๆˆทๅ’Œไปฃ็†้™ๅฎšไผš่ฏๅฏ†้’ฅใ€‚ +- [**่ดฆๆˆท**](/cn/explanation/accounts-overview)๏ผšๅˆ›ๅปบ้’ฑๅŒ…๏ผŒไฝฟ็”จ EIP-7702 ๅง”ๆ‰˜ EOA๏ผŒๅนถไธบ็”จๆˆทๅ’Œไปฃ็†่ฎพ็ฝฎไผš่ฏๅฏ†้’ฅ่Œƒๅ›ดใ€‚ - [**ๆ”ฏไป˜**](/cn/explanation/payments-overview)๏ผšๅ‘้€ USDT0๏ผŒๆž„ๅปบ P2P ๅ’Œ่ฎข้˜…ๆต็จ‹๏ผŒไฝฟ็”จ ERC-3009 ็ป“็ฎ—ๅ‘็ฅจ๏ผŒๅนถไฝฟ็”จ x402 ไธบ API ๅฎšไปทใ€‚ -- [**ๅˆ็บฆ**](/cn/explanation/contracts-overview)๏ผš้ƒจ็ฝฒใ€้ชŒ่ฏๅ’Œ็ดขๅผ• Solidity ๅˆ็บฆ๏ผŒๅนถ่ฐƒ็”จ Bank / Distribution / Staking ้ข„็ผ–่ฏ‘ใ€‚ +- [**ๅˆ็บฆ**](/cn/explanation/contracts-overview)๏ผš้ƒจ็ฝฒใ€้ชŒ่ฏๅ’Œ็ดขๅผ• Solidity ๅˆ็บฆ๏ผŒๅนถ่ฐƒ็”จ้“ถ่กŒ/ๅˆ†ๅ‘/่ดจๆŠผ้ข„็ผ–่ฏ‘ใ€‚ - [**AI ๅ’Œไปฃ็†**](/cn/explanation/agent-settlement)๏ผšๅฐ† MCP ๆœๅŠกๅ™จ่ฟžๆŽฅๅˆฐ AI ๅฎขๆˆท็ซฏ๏ผŒๅนถๅ…ฌๅผ€ไปฃ็†ๅฏไปฅ้€š่ฟ‡ๆ็คบ่ฐƒ็”จ็š„ x402 ไป˜่ดนๅทฅๅ…ทใ€‚ ## ไปŽ่ฟ™้‡Œๅผ€ๅง‹ -- [**ๅฟซ้€Ÿๅ…ฅ้—จ**](/cn/tutorial/quick-start)๏ผš่ฟžๆŽฅๅˆฐๆต‹่ฏ•็ฝ‘๏ผŒไธบ้’ฑๅŒ…ๆณจ่ต„๏ผŒๅนถๅ‘้€ๆ‚จ็š„็ฌฌไธ€็ฌ” USDT0 ไบคๆ˜“ใ€‚ -- [**ๅ‘้€ๆ‚จ็š„็ฌฌไธ€็ฌ” USDT0**](/cn/tutorial/send-usdt0)๏ผš็›ธๅŒไฝ™้ขไธŠ็š„ๅŽŸ็”Ÿๅ’Œ ERC-20 ไผ ่พ“๏ผŒ้™„ๅธฆ TypeScript ็คบไพ‹ใ€‚ +- [**ๅฟซ้€Ÿๅ…ฅ้—จ**](/cn/tutorial/quick-start)๏ผš่ฟžๆŽฅๅˆฐๆต‹่ฏ•็ฝ‘๏ผŒไธบ้’ฑๅŒ…ๆณจ่ต„๏ผŒๅนถๅ‘้€ๆ‚จ็š„็ฌฌไธ€ไธช USDT0 ไบคๆ˜“ใ€‚ +- [**ๅ‘้€ๆ‚จ็š„็ฌฌไธ€ไธช USDT0**](/cn/tutorial/send-usdt0)๏ผšๅœจๅŒไธ€ไฝ™้ขไธŠ่ฟ›่กŒๅŽŸ็”Ÿๅ’Œ ERC-20 ่ฝฌ่ดฆ๏ผŒๅนถ้™„ๅธฆ TypeScript ็คบไพ‹ใ€‚ - [**้ƒจ็ฝฒๆ™บ่ƒฝๅˆ็บฆ**](/cn/tutorial/smart-contract)๏ผšๆญๅปบ Foundry๏ผŒ้…็ฝฎ Stable๏ผŒๅนถ้ƒจ็ฝฒ Counter ๅˆ็บฆใ€‚ -- [**Stable SDK**](/cn/explanation/sdk-overview)๏ผšไฝฟ็”จ็ฑปๅž‹ๅŒ–็š„ TypeScript ๅฎขๆˆท็ซฏๅœจ Stable ไธŠ่ฟ›่กŒ่ฝฌ่ดฆใ€ๆกฅๆŽฅๅ’Œๅ…‘ๆขใ€‚ +- [**ๅทฅๅ…ทๅ’Œ SDK**](/cn/explanation/tools-overview)๏ผšไฝฟ็”จ็ฑปๅž‹ๅŒ–็š„ TypeScript SDKใ€ๆœๅŠก API ๅ’Œ MCP ๆœๅŠกๅ™จใ€‚ diff --git a/docs/pages/cn/explanation/gas-waiver.mdx b/docs/pages/cn/explanation/gas-waiver.mdx index 4cfa789..1aba12b 100755 --- a/docs/pages/cn/explanation/gas-waiver.mdx +++ b/docs/pages/cn/explanation/gas-waiver.mdx @@ -1,61 +1,73 @@ --- source_path: explanation/gas-waiver.mdx -source_sha: a03f510da6c1fe5ab2d31b55c8827b59792af6e0 -title: "ๅ…้™คGas่ดน" -description: "Gas่ดนๅ…้™คๆœบๅˆถๅ…่ฎธๅบ”็”จ็จ‹ๅบไธบ็”จๆˆทๆ”ฏไป˜Gas่ดนใ€‚็ปๆฒป็†ๆ‰นๅ‡†็š„่ฑๅ…ๆไบคๅฐ่ฃ…ไบคๆ˜“๏ผŒไปฅ้›ถGas่ดน่ฟ่กŒๅทฒ็ญพๅ่ดŸ่ฝฝใ€‚" +source_sha: 73109dcf0f466171e6c0807bb89627d896c640e0 +title: "Gas ่ฑๅ…" +description: "Gas ่ฑๅ…ๅ…่ฎธๅบ”็”จ็จ‹ๅบไธบ็”จๆˆทๆ”ฏไป˜ Gas ่ดนใ€‚็ปๆฒป็†ๆ‰นๅ‡†็š„่ฑๅ…ๆไบคๅŒ…่ฃ…ๅ™จไบคๆ˜“๏ผŒไปฅ้›ถ Gas ไปทๆ ผ่ฟ่กŒๅทฒ็ญพๅ็š„่ดŸ่ฝฝใ€‚" diataxis: "explanation" --- -# ๅ…้™คGas่ดน +# Gas ่ฑๅ… -็ปๆฒป็†ๆ‰นๅ‡†็š„ๅœฐๅ€๏ผˆ็งฐไธบ**่ฑๅ…่€…**๏ผ‰ๆไบคไธ€ไธชๅฐ่ฃ…ไบคๆ˜“๏ผŒๅ…ถไธญๅŒ…ๅซ็”จๆˆท็ญพๅ็š„่ดŸ่ฝฝ๏ผŒๅนถไปฅ `gasPrice = 0` ๆ‰ง่กŒใ€‚็”จๆˆทไธๆŒๆœ‰ไปปไฝ• USDT0 ไธ”ไธๆ”ฏไป˜ไปปไฝ• Gas ่ดนใ€‚Stable ่ฟ่ฅ็€ไธ€ไธช่ฟ™ๆ ท็š„่ฑๅ…ๆœๅŠก๏ผ›ๅˆไฝœไผ™ไผดไนŸๅฏไปฅ้€š่ฟ‡้ชŒ่ฏ่€…ๆฒป็†ๆณจๅ†Œไป–ไปฌ่‡ชๅทฑ็š„่ฑๅ…ๅœฐๅ€ใ€‚ +็ปๆฒป็†ๆ‰นๅ‡†็š„ๅœฐๅ€๏ผˆ็งฐไธบ**่ฑๅ…่€…**๏ผ‰ๆไบคไธ€ไธชๅŒ…่ฃ…ๅ™จไบคๆ˜“๏ผŒ่ฏฅไบคๆ˜“ๆบๅธฆ็”จๆˆท็ญพๅ็š„่ดŸ่ฝฝ๏ผŒๅนถไปฅ `gasPrice = 0` ๆ‰ง่กŒๅฎƒใ€‚็”จๆˆทไธๆŒๆœ‰ USDT0 ไนŸไธๆ”ฏไป˜ Gas ่ดนใ€‚Stable ่ฟ่ฅไธ€ไธช่ฟ™ๆ ท็š„่ฑๅ…ๆœๅŠกไฝœไธบๆ‰˜็ฎกๆœๅŠก๏ผ›ๅˆไฝœไผ™ไผดไนŸๅฏไปฅ้€š่ฟ‡้ชŒ่ฏ่€…ๆฒป็†ๆณจๅ†Œ่‡ชๅทฑ็š„่ฑๅ…ๅœฐๅ€ใ€‚ ## ๅทฅไฝœๅŽŸ็† -Gas่ดนๅ…้™คๆœบๅˆถ้‡‡็”จๅฐ่ฃ…ไบคๆ˜“ๆจกๅผ๏ผš +Gas ่ฑๅ…ไฝฟ็”จๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆจกๅผ๏ผš -1. **็”จๆˆท็ญพ็ฝฒไธ€ไธช `InnerTx`**๏ผŒๅ…ถไธญ `gasPrice = 0`ใ€‚็”จๆˆท็š„็ญพๅ็ซฏๅˆฐ็ซฏไฟ็•™๏ผ›่ฑๅ…่€…ไธ่ƒฝๅœจไธไฝฟๅ…ถๅคฑๆ•ˆ็š„ๆƒ…ๅ†ตไธ‹ไฟฎๆ”น่ดŸ่ฝฝใ€‚ -2. **่ฑๅ…่€…ๅฐ† `InnerTx` ๅฐ่ฃ…ๅˆฐ `WrapperTx` ไธญ**๏ผŒๅ‘้€ๅˆฐๅ่ฎฎๆ ‡่ฎฐๅœฐๅ€ (`0x000000000000000000000000000000000000f333`)๏ผŒๅ…ถไธญ `value = 0`ใ€`gasPrice = 0`๏ผŒๅนถๅฐ†ๅทฒ็ญพๅ็š„ `InnerTx` ไฝœไธบๅ…ถๆ•ฐๆฎ่ดŸ่ฝฝใ€‚ -3. **้ชŒ่ฏ่€…ๆฃ€ๆต‹ๅˆฐๆ ‡่ฎฐ**๏ผŒๆฃ€ๆŸฅ่ฑๅ…่€…็š„ๆŽˆๆƒๅ’Œ็ญ–็•ฅ็บฆๆŸ๏ผŒๅนถไปฅ็”จๆˆท็š„่บซไปฝ๏ผˆ`from`ใ€`nonce`ใ€่ฐƒ็”จ่ฏญไน‰๏ผ‰ๆ‰ง่กŒๅ†…้ƒจไบคๆ˜“ใ€‚ +1. **็”จๆˆท็ญพ็ฝฒไธ€ไธช `InnerTx`**๏ผŒๅ…ถไธญ `gasPrice = 0`ใ€‚็”จๆˆท็š„็ญพๅๅœจ็ซฏๅˆฐ็ซฏ่ฟ‡็จ‹ไธญๅพ—ๅˆฐไฟ็•™๏ผ›่ฑๅ…่€…ไธ่ƒฝไฟฎๆ”น่ดŸ่ฝฝ่€Œไธไฝฟๅ…ถๅคฑๆ•ˆใ€‚ +2. **่ฑๅ…่€…ๅฐ† `InnerTx` ๅŒ…่ฃ…ๆˆ `WrapperTx`**๏ผŒๅ‘้€ๅˆฐๅ่ฎฎๆ ‡่ฎฐๅœฐๅ€ (`0x000000000000000000000000000000000000f333`)๏ผŒๅ…ถไธญ `value = 0`๏ผŒ`gasPrice = 0`๏ผŒๅนถๅฐ†ๅทฒ็ญพๅ็š„ `InnerTx` ไฝœไธบๅ…ถๆ•ฐๆฎ่ดŸ่ฝฝใ€‚ +3. **้ชŒ่ฏ่€…ๆฃ€ๆต‹ๅˆฐๆ ‡่ฎฐ**๏ผŒๆฃ€ๆŸฅ่ฑๅ…่€…็š„ๆŽˆๆƒๅ’Œ็ญ–็•ฅ็บฆๆŸ๏ผŒๅนถไปฅ็”จๆˆท็š„่บซไปฝ๏ผˆ`from`ใ€`nonce`ใ€่ฐƒ็”จ่ฏญไน‰๏ผ‰ๆ‰ง่กŒๅ†…้ƒจไบคๆ˜“ใ€‚ -Gas ่ดน็”จๆ ธ็ฎ—ๅœจ่ฑๅ…ๆœบๅˆถๅ†…้ƒจๅค„็†ใ€‚็”จๆˆทไธๆ”ฏไป˜ไปปไฝ•่ดน็”จ๏ผ›ๅฐ่ฃ…่€…ไธๆ”ฏไป˜ไปปไฝ•่ดน็”จ๏ผ›้ชŒ่ฏ่€…ๆ นๆฎๆฏไธช่ฑๅ…่€…็š„็ญ–็•ฅๆ‰ฟๆ‹…ๆˆๆœฌใ€‚ +Gas ๆ ธ็ฎ—ๅœจ่ฑๅ…ๆœบๅˆถๅ†…้ƒจๅค„็†ใ€‚็”จๆˆทไธๆ”ฏไป˜ไปปไฝ•่ดน็”จ๏ผ›ๅŒ…่ฃ…ๅ™จไธๆ”ฏไป˜ไปปไฝ•่ดน็”จ๏ผ›้ชŒ่ฏ่€…ๆ นๆฎๆฏไธช่ฑๅ…่€…็š„็ญ–็•ฅๆ‰ฟๆ‹…ๆˆๆœฌใ€‚ ## ๆŽˆๆƒๅ’Œ็ญ–็•ฅ -่ฑๅ…่€…็”ฑ้ชŒ่ฏ่€…ๆฒป็†ๆŽงๅˆถ๏ผŒ่€Œไธๆ˜ฏๅบ”็”จ็จ‹ๅบ้€ป่พ‘ใ€‚ๆฒป็†ๆไพ›๏ผš +่ฑๅ…็”ฑ้ชŒ่ฏ่€…ๆฒป็†ๆŽงๅˆถ๏ผŒ่€Œไธๆ˜ฏๅบ”็”จ็จ‹ๅบ้€ป่พ‘ใ€‚ๆฒป็†ๆไพ›๏ผš -- **ๅฏๅฎกๆŸฅ็š„ๆณจๅ†Œ**๏ผšๆฏไธช่ฑๅ…ๅœฐๅ€้ƒฝๅœจ้“พไธŠๆณจๅ†Œๅนถไธ”ๅœจ็Šถๆ€ไธญๅฏ่งใ€‚ -- **ๆ’ค้”€**๏ผš้ชŒ่ฏ่€…ๅฏไปฅ้šๆ—ถ็งป้™ค่กŒไธบไธๅฝ“็š„่ฑๅ…่€…ใ€‚ -- **้€š่ฟ‡ `AllowedTarget` ่ฟ›่กŒ่Œƒๅ›ด่ฎฟ้—ฎ**๏ผšๆฏไธช่ฑๅ…่€…้ƒฝ็ป‘ๅฎšๅˆฐไธ€็ป„็‰นๅฎš็š„็›ฎๆ ‡ๅˆ็บฆๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จใ€‚ๅฆ‚ๆžœๅ†…้ƒจ `to` ๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จ่ถ…ๅ‡บ่ฏฅ่Œƒๅ›ด๏ผŒๅ่ฎฎๅฐ†ๆ‹’็ปไปปไฝ•ๅฐ่ฃ…ใ€‚ +- **ๅฏๅฎกๆŸฅ็š„ๆณจๅ†Œ**๏ผšๆฏไธช่ฑๅ…ๅœฐๅ€้ƒฝๅœจ้“พไธŠๆณจๅ†Œ๏ผŒๅนถๅœจ็Šถๆ€ไธญๅฏ่งใ€‚ +- **ๆ’ค้”€**๏ผš้ชŒ่ฏ่€…ๅฏไปฅ้šๆ—ถ็งป้™ค่กŒไธบไธๅฝ“็š„่ฑๅ…่€…ใ€‚ +- **้€š่ฟ‡ `AllowedTarget` ่ฟ›่กŒ่Œƒๅ›ด่ฎฟ้—ฎ**๏ผšๆฏไธช่ฑๅ…่€…้ƒฝ็ป‘ๅฎšๅˆฐไธ€็ป„็‰นๅฎš็š„็›ฎๆ ‡ๅˆ็บฆๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จใ€‚ๅฆ‚ๆžœๅ†…้ƒจ `to` ๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จ่ถ…ๅ‡บ่ฏฅ่Œƒๅ›ด๏ผŒๅ่ฎฎๅฐ†ๆ‹’็ปไปปไฝ•ๅŒ…่ฃ…ๅ™จใ€‚ -ๆœ‰ๆ•ˆ็š„ๅฐ่ฃ…ไบคๆ˜“ๆปก่ถณไปฅไธ‹ๆ‰€ๆœ‰ๆกไปถ๏ผš +ๆœ‰ๆ•ˆ็š„ๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆปก่ถณไปฅไธ‹ๆ‰€ๆœ‰ๆกไปถ๏ผš -- `WrapperTx.to == 0x000000000000000000000000000000000000f333`๏ผˆๆ ‡่ฎฐๅœฐๅ€๏ผ‰ใ€‚ -- `WrapperTx.from` ๆ˜ฏ้€š่ฟ‡ๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„่ฑๅ…่€…ใ€‚ -- `WrapperTx.gasPrice == 0` ไธ” `InnerTx.gasPrice == 0`ใ€‚ -- `WrapperTx.value == 0`ใ€‚ -- `InnerTx.to` ๅ’Œๆๅ–็š„ๆ–นๆณ•้€‰ๆ‹ฉๅ™จ็”ฑ่ฑๅ…่€…็š„ `AllowedTarget` ็ญ–็•ฅๅ…่ฎธใ€‚ +- `WrapperTx.to == 0x000000000000000000000000000000000000f333`๏ผˆๆ ‡่ฎฐๅœฐๅ€๏ผ‰ใ€‚ +- `WrapperTx.from` ๆ˜ฏ้€š่ฟ‡ๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„่ฑๅ…่€…ใ€‚ +- `WrapperTx.gasPrice == 0` ไธ” `InnerTx.gasPrice == 0`ใ€‚ +- `WrapperTx.value == 0`ใ€‚ +- `InnerTx.to` ๅ’Œๆๅ–็š„ๆ–นๆณ•้€‰ๆ‹ฉๅ™จ็”ฑ่ฑๅ…่€…็š„ `AllowedTarget` ็ญ–็•ฅๅ…่ฎธใ€‚ -ๅฆ‚ๆžœไปปไฝ•ๆกไปถๅคฑ่ดฅ๏ผŒ้ชŒ่ฏ่€…ๅฐ†ๆ‹’็ปๅฐ่ฃ…่€Œไธๆ‰ง่กŒๅ†…้ƒจไบคๆ˜“ใ€‚ +ๅฆ‚ๆžœไปปไฝ•ๆกไปถๅคฑ่ดฅ๏ผŒ้ชŒ่ฏ่€…ๅฐ†ๆ‹’็ปๅŒ…่ฃ…ๅ™จ๏ผŒ่€Œไธๆ‰ง่กŒๅ†…้ƒจไบคๆ˜“ใ€‚ ## ๅฎ‰ๅ…จๆจกๅž‹ -- **็”จๆˆท็ญพๅๅฎŒๆ•ดๆ€ง**๏ผš็”จๆˆท็ญพ็ฝฒ `InnerTx`ใ€‚่ฑๅ…่€…ไธ่ƒฝๅœจไธไฝฟ็ญพๅๅคฑๆ•ˆ็š„ๆƒ…ๅ†ตไธ‹ไฟฎๆ”น่ดŸ่ฝฝใ€‚ๅˆไฝœไผ™ไผดไปๆœ‰่ดฃไปป็กฎไฟ็”จๆˆทๅช็ญพ็ฝฒ้ข„ๆœŸ็š„่ดŸ่ฝฝใ€‚ -- **้“พไธŠๆŽˆๆƒ**๏ผšๆŽˆๆƒๅญ˜ๅœจไบŽ้“พไธŠใ€‚ๅชๆœ‰ๆฒป็†ๆณจๅ†Œ็š„่ฑๅ…ๅœฐๅ€ๆ‰่ƒฝๆไบคๆœ‰ๆ•ˆ็š„ๅฐ่ฃ…๏ผŒๆ— ่ฎบ่ฏทๆฑ‚ๆบ่‡ชไฝ•ๅค„ใ€‚ -- **ๆœๅŠกๅฏ็”จๆ€ง่พน็•Œ**๏ผšๅฝ“ๅˆไฝœไผ™ไผด้€š่ฟ‡ Stable ๆ‰˜็ฎก็š„่ฑๅ…ๆœๅŠกๅ™จ่ทฏ็”ฑๆ—ถ๏ผŒๆไบค็š„ๅฏ็”จๆ€งๅ–ๅ†ณไบŽๆœๅŠกใ€‚ๅ่ฎฎ็บงๅˆซ็š„ๆŽˆๆƒไฟ่ฏไธๅ—ๅฝฑๅ“ใ€‚ +- **็”จๆˆท็ญพๅๅฎŒๆ•ดๆ€ง**๏ผš็”จๆˆท็ญพ็ฝฒ `InnerTx`ใ€‚่ฑๅ…่€…ไธ่ƒฝๅœจไธไฝฟ็ญพๅๆ— ๆ•ˆ็š„ๆƒ…ๅ†ตไธ‹ไฟฎๆ”น่ดŸ่ฝฝใ€‚ๅˆไฝœไผ™ไผดไปๆœ‰่ดฃไปป็กฎไฟ็”จๆˆทๅช็ญพ็ฝฒ้ข„ๆœŸ็š„่ดŸ่ฝฝใ€‚ +- **้“พไธŠๆŽˆๆƒ**๏ผšๆŽˆๆƒๅญ˜ๅœจไบŽ้“พไธŠใ€‚ๅชๆœ‰ๆฒป็†ๆณจๅ†Œ็š„่ฑๅ…ๅœฐๅ€ๆ‰่ƒฝๆไบคๆœ‰ๆ•ˆ็š„ๅŒ…่ฃ…ๅ™จ๏ผŒๆ— ่ฎบ่ฏทๆฑ‚ๆบ่‡ชไฝ•ๅค„ใ€‚ +- **ๆœๅŠกๅฏ็”จๆ€ง่พน็•Œ**๏ผšๅฝ“ๅˆไฝœไผ™ไผด้€š่ฟ‡ Stable ็š„ๆ‰˜็ฎก่ฑๅ…ๆœๅŠกๅ™จ่ทฏ็”ฑๆ—ถ๏ผŒๆไบค็š„ๅฏ็”จๆ€งๅ–ๅ†ณไบŽๆœๅŠกใ€‚ๅ่ฎฎ็บงๅˆซ็š„ๆŽˆๆƒไฟ่ฏไธๅ—ๅฝฑๅ“ใ€‚ -## ไฝ•ๆ—ถไฝฟ็”จGas่ดนๅ…้™คๆœบๅˆถ +## ไฝ•ๆ—ถไฝฟ็”จ Gas ่ฑๅ… -Gas่ดนๅ…้™คๆœบๅˆถ้€‚็”จไบŽไปปไฝ•็”จๆˆทไธ้œ€่ฆๆŒๆœ‰ USDT0 ๆ”ฏไป˜ Gas ่ดน็š„ๅœบๆ™ฏ๏ผš +Gas ่ฑๅ…้€‚็”จไบŽไปปไฝ•ๆœ€็ปˆ็”จๆˆทๆ— ้œ€ๆŒๆœ‰ USDT0 ๆ”ฏไป˜ Gas ็š„ๆต็จ‹๏ผš -- ๆถˆ่ดน่€…ๅบ”็”จ็จ‹ๅบๅผ•ๅฏผๆ–ฐ็”จๆˆท๏ผŒ่ฟ™ไบ›็”จๆˆทๅฐšๆœชๆŒๆœ‰็จณๅฎšๅธไฝ™้ขใ€‚ -- ไปฃ็†้ฉฑๅŠจ็š„ๆต็จ‹๏ผŒๅ…ถไธญไปฃ็†็š„้’ฑๅŒ…ๆ”ฏไป˜ Gas ่ดนใ€‚ -- ไผไธšๆ”ฏไป˜่ฝจ้“๏ผŒๅ…ถไธญ่ฟ่ฅๅ•†ๆ‰ฟๆ‹…็ฝ‘็ปœๆˆๆœฌใ€‚ +- ๅฐšๆœชๆ‹ฅๆœ‰็จณๅฎšๅธไฝ™้ข็š„ๆถˆ่ดน่€…ๅบ”็”จ็”จๆˆทๅ…ฅ้—จใ€‚ +- ็”ฑไปฃ็†้ฉฑๅŠจ็š„ๆต็จ‹๏ผŒๅ…ถไธญไปฃ็†็š„้’ฑๅŒ…ไธบ Gas ๆไพ›่ต„้‡‘ใ€‚ +- ไผไธšๆ”ฏไป˜่ฝจ้“๏ผŒๅ…ถไธญ่ฟ่ฅๅ•†ๆ‰ฟๆ‹…็ฝ‘็ปœๆˆๆœฌใ€‚ -ๅฏนไบŽ็”จๆˆทๆŒๆœ‰ USDT0 ไฝ†ๅธŒๆœ›ๅฐ†ๅคšไธช่ฐƒ็”จๆ†็ป‘ๅˆฐไธ€ไธช็ญพๅไบคๆ˜“็š„ๆต็จ‹๏ผŒ่ฏทๅ‚้˜…[EIP-7702 ๅง”ๆ‰˜](/cn/reference/eip-7702-api)ไปฃๆ›ฟใ€‚ +ๅฏนไบŽ็”จๆˆทๆŒๆœ‰ USDT0 ไฝ†ๅธŒๆœ›ๅฐ†ๅคšไธช่ฐƒ็”จๆ†็ป‘ๅˆฐไธ€ไธช็ญพๅไบคๆ˜“ไธญ็š„ๆต็จ‹๏ผŒ่ฏทๅ‚้˜…[EIP-7702 ๅง”ๆ‰˜](/cn/reference/eip-7702-api)ใ€‚ + +## ้€‰ๆ‹ฉ้›†ๆˆ่ทฏๅพ„ + +ๆ‰€ๆœ‰ไธ‰็ง่ทฏๅพ„้ƒฝไผšไบง็”Ÿ็›ธๅŒ็š„้“พไธŠ็ป“ๆžœใ€‚ๅฎƒไปฌๅœจ่ฐๆŒๆœ‰่ฑๅ…ๅฏ†้’ฅไปฅๅŠๆ‚จๆž„ๅปบๅคšๅฐ‘ๆ–น้ขๆœ‰ๆ‰€ไธๅŒใ€‚ + +| ่ทฏๅพ„ | ่ฐๆŒๆœ‰่ฑๅ…ๅฏ†้’ฅ | ไฝ•ๆ—ถไฝฟ็”จ | +| :--- | :--- | :--- | +| [ๆ‰˜็ฎก่ฑๅ…ๆœๅŠกๅ™จ](/cn/how-to/integrate-gas-waiver) | Stable๏ผŒๆ‚จ้€š่ฟ‡ API ๅฏ†้’ฅ่ฟ›่กŒ่บซไปฝ้ชŒ่ฏ | ๆ‚จๆƒณ่ฆๆœ€็Ÿญ็š„่ทฏๅพ„๏ผŒๅนถไธ”ๅฏไปฅไพ่ต– Stable ็š„ๆœๅŠก่ฟ›่กŒๆไบคใ€‚ | +| [ไผไธš SDK](/cn/how-to/relay-with-gas-waiver) | ๆ‚จ๏ผŒ้€š่ฟ‡ๆฒป็†ๆณจๅ†Œ | ๆ‚จ็”จ TypeScript ่ฟ่กŒ่‡ชๅทฑ็š„่ฑๅ…๏ผŒๅนถๅธŒๆœ›ไธ€ๆฌก่ฐƒ็”จๅณๅฏๆž„ๅปบใ€็ญพๅๅ’Œๅนฟๆ’ญใ€‚ | +| [่‡ชๆ‰˜็ฎกๅŒ…่ฃ…ๅ™จ](/cn/how-to/self-hosted-gas-waiver) | ๆ‚จ๏ผŒ้€š่ฟ‡ๆฒป็†ๆณจๅ†Œ | ๆ‚จ่‡ชๅทฑๆž„ๅปบๅŒ…่ฃ…ๅ™จไบคๆ˜“๏ผŒไฝฟ็”จ SDK ไธๆถต็›–็š„่ฏญ่จ€ใ€‚ | + +ๆ‰˜็ฎกๆœๅŠกๅ™จไธบๆ‚จๆณจๅ†Œๅนถ่ฟ่ฅ่ฑๅ…๏ผŒๅ› ๆญคๆ‚จๆ— ้œ€ๆž„ๅปบ `WrapperTx`ใ€‚ไธคๆก่‡ชๆ‰˜็ฎก่ทฏๅพ„้ƒฝ้œ€่ฆไธ€ไธช็ป่ฟ‡ๆฒป็†ๆณจๅ†Œ็š„่ฑๅ…ๅœฐๅ€๏ผŒ่€Œ `@stablechain/enterprise` ๆ˜ฏ่ฏฅๆจกๅž‹็š„็ฑปๅž‹ๅŒ–ๅฎขๆˆท็ซฏใ€‚ ## ไธ‹ไธ€ๆญฅๅปบ่ฎฎ -- [**ๅฏ็”จๅ… Gas ่ดนไบคๆ˜“**](/cn/how-to/integrate-gas-waiver)๏ผš้€š่ฟ‡ API ๅฏ†้’ฅๆไบคๅ’Œ NDJSON ๅ“ๅบ”้›†ๆˆๆ‰˜็ฎก็š„่ฑๅ…ๆœๅŠกๅ™จ APIใ€‚ -- [**Gas ่ดนๅ…้™คๅ่ฎฎ**](/cn/reference/gas-waiver-api)๏ผš้˜…่ฏปๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผšๆ ‡่ฎฐ่ทฏ็”ฑใ€ๅฐ่ฃ…ๆ ผๅผใ€ๆฒป็†ๆŽงๅˆถใ€‚ -- [**USDT0 ไฝœไธบ Gas**](/cn/explanation/usdt-as-gas-token)๏ผšไบ†่งฃ่ฑๅ…ๆถต็›–็š„ Gas ไปค็‰Œใ€‚ +- [**ๅฏ็”จๅ… Gas ไบคๆ˜“**](/cn/how-to/integrate-gas-waiver)๏ผš้›†ๆˆๆ‰˜็ฎก่ฑๅ…ๆœๅŠกๅ™จ API๏ผŒๆ”ฏๆŒ API ๅฏ†้’ฅๆไบคๅ’Œ NDJSON ๅ“ๅบ”ใ€‚ +- [**Gas ่ฑๅ…ๅ่ฎฎ**](/cn/reference/gas-waiver-api)๏ผš้˜…่ฏปๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผšๆ ‡่ฎฐ่ทฏ็”ฑใ€ๅŒ…่ฃ…ๅ™จๆ ผๅผใ€ๆฒป็†ๆŽงๅˆถใ€‚ +- [**USDT0 ไฝœไธบ Gas**](/cn/explanation/usdt-as-gas-token)๏ผšไบ†่งฃ่ฑๅ…ๆถต็›–็š„ Gas ไปฃๅธใ€‚ diff --git a/docs/pages/cn/explanation/tools-overview.mdx b/docs/pages/cn/explanation/tools-overview.mdx new file mode 100644 index 0000000..a507d44 --- /dev/null +++ b/docs/pages/cn/explanation/tools-overview.mdx @@ -0,0 +1,42 @@ +--- +source_path: explanation/tools-overview.mdx +source_sha: 6eecb794f859527309d0c200ea29e33c6223cb74 +title: "ๅทฅๅ…ทๅ’Œ SDK" +description: "้€‰ๆ‹ฉๅˆ้€‚็š„ Stable ๅทฅๅ…ท๏ผš็ฑปๅž‹ๅŒ–็š„ TypeScript SDKใ€Gas ่ดน็”จ่ฑๅ…ๅ’Œ EIP-7702 ๆœๅŠก API๏ผŒไปฅๅŠ็”จไบŽ AI ๅฎขๆˆท็ซฏ็š„ MCP ๆœๅŠกๅ™จใ€‚" +diataxis: "explanation" +--- + +# ๅทฅๅ…ทๅ’Œ SDK + +ๆ‰€ๆœ‰ไฝ ็”จๆฅ่ฐƒ็”จ Stable ็š„ไธœ่ฅฟ้ƒฝๅœจ่ฟ™้‡Œใ€‚่ฆๅœจ Stable ไธŠๆž„ๅปบไบงๅ“๏ผŸไปŽ [Stable SDK](/cn/explanation/sdk-overview) ๅผ€ๅง‹๏ผŒๅฝ“ไฝ ้œ€่ฆ SDK ๆœชๅฐ่ฃ…็š„ๅŠŸ่ƒฝๆ—ถ๏ผŒๅฏไปฅไฝฟ็”จๆœๅŠก APIใ€‚ไธบๅŽ็ซฏ่ตžๅŠฉ Gas ่ดน็”จๆˆ–ไธญ็ปงไบคๆ˜“๏ผŸไปŽ [Enterprise SDK](/cn/explanation/enterprise-sdk) ๅผ€ๅง‹ใ€‚ๅฐ† Stable ้›†ๆˆๅˆฐ AI ็ผ–่พ‘ๅ™จๆˆ–ไปฃ็†ไธญ๏ผŸ่ฏท่ฎฟ้—ฎ [ไฝฟ็”จ AI ่ฟ›่กŒๅผ€ๅ‘](/cn/how-to/develop-with-ai)ใ€‚ + +## ไฝฟ็”จ SDK ่ฟ›่กŒๆž„ๅปบ + +- [**Stable SDK**](/cn/explanation/sdk-overview)๏ผš`@stablechain/sdk`๏ผŒ็”จไบŽ่ฝฌ่ดฆใ€่ทจ้“พๆกฅๆŽฅใ€ๅ…‘ๆขๅ’Œ Vault ๆ”ถ็›Š็š„็ฑปๅž‹ๅŒ– TypeScript ๅฎขๆˆท็ซฏใ€‚ๅฎƒๅฐ่ฃ…ไบ† viem ๅนถๅค„็†่ทฏ็”ฑใ€ๆ‰นๅ‡†ใ€ๅฐๆ•ฐไฝๅ’Œ้“พๅˆ‡ๆขใ€‚ +- [**SDK ๅฟซ้€Ÿๅ…ฅ้—จ**](/cn/tutorial/sdk-quickstart)๏ผšๅฎ‰่ฃ…่ฝฏไปถๅŒ…๏ผŒๅœจๆต‹่ฏ•็ฝ‘ไธŠๅ‘้€ไฝ ็š„็ฌฌไธ€็ฌ” USDT0 ่ฝฌ่ดฆ๏ผŒๅนถ้ข„่งˆไธป็ฝ‘่ทจ้“พๆกฅๆŠฅไปทใ€‚ +- [**SDK ๅ‚่€ƒ**](/cn/reference/sdk) + ๏ผš`createStable`ใ€`createStableReader`ใ€่ฝฌ่ดฆใ€่ทจ้“พๆกฅๆŽฅใ€ๅ…‘ๆขๅ’Œ่ตšๅ–ๆ–นๆณ•ใ€ๆžšไธพๅ’Œ้”™่ฏฏ็ฑปใ€‚ +- [**Enterprise SDK**](/cn/explanation/enterprise-sdk)๏ผš`@stablechain/enterprise`๏ผŒ็”จไบŽๅ… Gas ไบคๆ˜“ๅ’Œ้ข„็•™ไผไธšไธ“็”จๅŒบๅ—็ฉบ้—ด็š„ๆœๅŠกๅ™จ็ซฏๅฎขๆˆท็ซฏใ€‚ +- [**Enterprise SDK ๅ‚่€ƒ**](/cn/reference/enterprise-sdk)๏ผš`createStableEnterprise`ใ€ไธค็ง่ฝจ้“ใ€ๆž„ๅปบๅŠฉๆ‰‹ๅ’Œ้”™่ฏฏ็ฑปใ€‚ + +## ๅฐ† SDK ไธŽไฝ ็š„ๆŠ€ๆœฏๆ ˆ็ป“ๅˆไฝฟ็”จ + +- [**viem**](/cn/how-to/sdk-with-viem)๏ผšไธ‰็ง็ญพๅๆ–นๅผ๏ผš็ง้’ฅ่ดฆๆˆทใ€ๆต่งˆๅ™จไผ ่พ“ๆˆ–้ข„ๆž„ๅปบ็š„ viem WalletClientใ€‚ +- [**wagmi**](/cn/how-to/sdk-with-wagmi)๏ผšไฝฟ็”จ `useWalletClient`ใ€`useAccount` ๅ’Œ `useChainId` ๅฐ† SDK ่ฟžๆŽฅๅˆฐ React ๅบ”็”จไธญใ€‚ +- [**่ตšๅ–ๆ”ถ็›Š**](/cn/how-to/earn-yield)๏ผšๅฐ† USDT0 ๅญ˜ๅ…ฅ Morpho Vault๏ผŒ่ฏปๅ– APY ๅ’Œไป“ไฝ๏ผŒๆๆฌพ๏ผŒๅนถ้ข†ๅ– Merkl ๅฅ–ๅŠฑใ€‚ + +## ๆœๅŠก API + +- [**Gas ่ดน็”จ่ฑๅ…ๅ่ฎฎ**](/cn/reference/gas-waiver-api)๏ผšไบคๆ˜“ๆ ผๅผใ€ๆ ‡่ฎฐ่ทฏ็”ฑใ€ๆฒป็†ๆŽงๅˆถไปฅๅŠไฝ ๅ‘ๅ…ถๅ‘ๅธƒๅทฒ็ญพๅ `InnerTx` ่ดŸ่ฝฝ็š„ Waiver Server APIใ€‚ +- [**EIP-7702**](/cn/reference/eip-7702-api)๏ผšๅง”ๆ‰˜ไบคๆ˜“ๆ ผๅผๅ’Œ RPC ่กŒไธบ๏ผŒ็”จไบŽๅฐ† EOA ็š„่ดฆๆˆทไปฃ็ ๆŒ‡ๅ‘ๆ™บ่ƒฝๅˆ็บฆใ€‚ + +## AI ๅ’Œไปฃ็†ๅทฅๅ…ท + +- [**ไฝฟ็”จ AI ่ฟ›่กŒๅผ€ๅ‘**](/cn/how-to/develop-with-ai)๏ผšๅฐ† Docs MCP ๅ’Œ Runtime MCP ๆœๅŠกๅ™จๆทปๅŠ ๅˆฐไปปไฝ• MCP ๅ…ผๅฎนๅฎขๆˆท็ซฏ๏ผŒไปฅๅŠ้€‚็”จไบŽไธๅธฆ MCP ็š„ๅทฅๅ…ท็š„็บฏๆ–‡ๆœฌๆ–‡ๆกฃใ€‚ +- [**ไฝฟ็”จ MCP ๆœๅŠกๅ™จๆ”ฏไป˜**](/cn/how-to/pay-with-mcp)๏ผšๅฐ† x402 ๆ”ฏไป˜็š„ API ไฝœไธบ MCP ๅทฅๅ…ทๅ…ฌๅผ€๏ผŒไปฅไพฟ AI ๅฎขๆˆท็ซฏ้€š่ฟ‡ๆ็คบ่ฐƒ็”จๅ’Œๆ”ฏไป˜ๅฎƒไปฌใ€‚ + +## ไธ‹ไธ€ๆญฅ + +- [**ๅฟซ้€Ÿๅ…ฅ้—จ**](/cn/tutorial/quick-start)๏ผš่ฟžๆŽฅๅˆฐๆต‹่ฏ•็ฝ‘๏ผŒไธบ้’ฑๅŒ…ๅ……ๅ€ผ๏ผŒๅนถๅ‘้€ไฝ ็š„็ฌฌไธ€็ฌ” USDT0 ไบคๆ˜“ใ€‚ +- [**JSON-RPC API**](/cn/reference/json-rpc-api)๏ผš`eth`ใ€`net`ใ€`web3` ๅ’Œ `debug` ๅ‘ฝๅ็ฉบ้—ดไธญๆ”ฏๆŒ็š„ๆ–นๆณ•ใ€‚ +- [**ๆž„ๅปบ**](/cn/explanation/build-overview)๏ผš่ดฆๆˆทใ€ๆ”ฏไป˜ใ€ๅˆ็บฆๅ’Œไปฃ็†๏ผŒๆŒ‰ไฝ ๆญฃๅœจๅ‘ๅธƒ็š„ๅ†…ๅฎน็ป„็ป‡ใ€‚ diff --git a/docs/pages/cn/how-to/integrate-gas-waiver.mdx b/docs/pages/cn/how-to/integrate-gas-waiver.mdx index d0921df..df99cb6 100644 --- a/docs/pages/cn/how-to/integrate-gas-waiver.mdx +++ b/docs/pages/cn/how-to/integrate-gas-waiver.mdx @@ -1,25 +1,25 @@ --- source_path: how-to/integrate-gas-waiver.mdx -source_sha: eaaf45d02173e1ce6279849d803d73014dbb7696 +source_sha: 29f1288293527b18488a9e502ed114dca6f9c690 title: "ๅฏ็”จๅ…Gasไบคๆ˜“" -description: "้€š่ฟ‡ๅ‘่ฑๅ…ๆœๅŠกๅ™จ API ๆไบคๅทฒ็ญพๅ็š„ InnerTx ๆœ‰ๆ•ˆ่ดŸ่ฝฝๆฅ้›†ๆˆ Stable Gas Waiver๏ผŒไปฅๅฏ็”จๅ… Gas ไบคๆ˜“ใ€‚" +description: "้€š่ฟ‡ๅ‘Waiver Server APIๆไบคๅทฒ็ญพๅ็š„InnerTx่ดŸ่ฝฝ๏ผŒ้›†ๆˆStable Gas Waiverไปฅๅฏ็”จๅ…Gasไบคๆ˜“ใ€‚" diataxis: "how-to" --- # ๅฏ็”จๅ…Gasไบคๆ˜“ -Gas Waiver ๅฏไปฅๅœจ Stable ไธŠๅฏ็”จๅ… Gas ไบคๆ˜“ใ€‚้€š่ฟ‡ Gas Waiver๏ผŒๅบ”็”จ็จ‹ๅบๅฏไปฅไปฃ่กจ็”จๆˆทๆ”ฏไป˜ Gas ่ดน็”จ๏ผŒๅ› ๆญค็”จๆˆทๆ— ้œ€ๆŒๆœ‰ USDT0 ๅณๅฏไธŽๅˆ็บฆ่ฟ›่กŒไบคไบ’ใ€‚ +Gas Waiver ๅฏไปฅๅœจ Stable ไธŠๅฎž็Žฐๅ… Gas ไบคๆ˜“ใ€‚้€š่ฟ‡ Gas Waiver๏ผŒๅบ”็”จ็จ‹ๅบๅฏไปฅไปฃ่กจ็”จๆˆทๆ”ฏไป˜ Gas ่ดน็”จ๏ผŒๅ› ๆญค็”จๆˆทๆ— ้œ€ๆŒๆœ‰ USDT0 ๅณๅฏไธŽๅˆ็บฆ่ฟ›่กŒไบคไบ’ใ€‚ -ๆœฌๆŒ‡ๅ—ๆถต็›–ไบ†้€š่ฟ‡่ฑๅ…ๆœๅŠกๅ™จ API ่ฟ›่กŒ็š„้›†ๆˆใ€‚ +ๆœฌๆŒ‡ๅ—ๆถต็›–ไบ†ๆ‰˜็ฎก็š„ Waiver Server API๏ผŒStable ๅœจๅ…ถไธญๆ“ไฝœ Waiver๏ผŒๆ‚จๅฏไปฅไฝฟ็”จ API ๅฏ†้’ฅ่ฟ›่กŒ่บซไปฝ้ชŒ่ฏใ€‚่ฆ้€š่ฟ‡ๆฒป็†ๆณจๅ†Œๆ‚จ่‡ชๅทฑ็š„ Waiver ๅœฐๅ€๏ผŒ่ฏทๅ‚้˜…[้€‰ๆ‹ฉ้›†ๆˆ่ทฏๅพ„](/cn/explanation/gas-waiver#choosing-an-integration-path)ใ€‚ :::note -**ๆฆ‚ๅฟต๏ผš** ๆœ‰ๅ…ณ Gas Waiver ๆ˜ฏไป€ไนˆใ€ๅฎƒไธบไฝ•ๅญ˜ๅœจไปฅๅŠๆฒป็†ๆŽˆๆƒ่ฑๅ…ๅฆ‚ไฝ•่ฟไฝœ็š„ไฟกๆฏ๏ผŒ่ฏทๅ‚้˜…[Gas waiver](/cn/explanation/gas-waiver)ใ€‚ๆœ‰ๅ…ณๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผˆๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆ ผๅผใ€ๆ ‡่ฎฐๅœฐๅ€ใ€ๆ‰ง่กŒ่ฏญไน‰ใ€ๅฎ‰ๅ…จๆจกๅž‹๏ผ‰๏ผŒ่ฏทๅ‚้˜…[Gas waiver protocol](/cn/reference/gas-waiver-api)ใ€‚ +**ๆฆ‚ๅฟต๏ผš** ๆœ‰ๅ…ณ Gas Waiver ๆ˜ฏไป€ไนˆใ€ๅฎƒไธบไฝ•ๅญ˜ๅœจไปฅๅŠๆฒป็†ๆŽˆๆƒ็š„ Waiver ๅฆ‚ไฝ•่ฟไฝœ๏ผŒ่ฏทๅ‚้˜…[Gas Waiver](/cn/explanation/gas-waiver)ใ€‚ๆœ‰ๅ…ณๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผˆๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆ ผๅผใ€ๆ ‡่ฎฐๅœฐๅ€ใ€ๆ‰ง่กŒ่ฏญไน‰ใ€ๅฎ‰ๅ…จๆจกๅž‹๏ผ‰๏ผŒ่ฏทๅ‚้˜…[Gas Waiver ๅ่ฎฎ](/cn/reference/gas-waiver-api)ใ€‚ ::: ## ๅ‰ๆๆกไปถ - ็”ฑ Stable ๅ›ข้˜Ÿ้ขๅ‘็š„ Waiver Server API ๅฏ†้’ฅ -- ็›ฎๆ ‡ๅˆ็บฆๅœฐๅ€ๅฟ…้กปๅœจ่ฑๅ…็š„ `AllowedTarget` ็ญ–็•ฅไธญๆณจๅ†Œ +- ็›ฎๆ ‡ๅˆ็บฆๅœฐๅ€ๅฟ…้กปๅœจ Waiver ็š„ `AllowedTarget` ็ญ–็•ฅไธญๆณจๅ†Œ ## Waiver Server @@ -28,19 +28,19 @@ Gas Waiver ๅฏไปฅๅœจ Stable ไธŠๅฏ็”จๅ… Gas ไบคๆ˜“ใ€‚้€š่ฟ‡ Gas Waiver๏ผŒๅบ”็”จ - ไธป็ฝ‘๏ผšๅพ…ๅฎš - ๆต‹่ฏ•็ฝ‘๏ผš`https://waiver.testnet.stable.xyz` -**ๆŽˆๆƒ๏ผš** `Bearer ` +**ๆŽˆๆƒ๏ผš** `Bearer <ๆ‚จ็š„APIๅฏ†้’ฅ>` ## ๆฆ‚่ฟฐ -้›†ๆˆๆต็จ‹ๅˆ†ไธบไธ‰ไธชๆญฅ้ชค๏ผš +้›†ๆˆๆต็จ‹ๅˆ†ไธ‰ๆญฅ๏ผš -1. **ๆž„ๅปบ InnerTx**๏ผš็”จๆˆทไฝฟ็”จ `gasPrice = 0` ็ญพ็ฝฒไบคๆ˜“ใ€‚ -2. **ๆไบคๅˆฐ Waiver Server**๏ผšๅฐ†ๅทฒ็ญพๅ็š„ไบคๆ˜“ๆไบคๅˆฐ Waiver Server APIใ€‚ -3. **ๅค„็†ๅ“ๅบ”**๏ผš่ฑๅ…ๆœๅŠกๅ™จๅฐ่ฃ…ๅนถๅนฟๆ’ญไบคๆ˜“ใ€‚ๅค„็†ๆตๅผ็ป“ๆžœๅนถๅฐ†ไบคๆ˜“ๅ“ˆๅธŒๆ˜พ็คบ็ป™็”จๆˆทใ€‚ +1. **ๆž„ๅปบ InnerTx**๏ผš็”จๆˆทไฝฟ็”จ `gasPrice = 0` ็ญพ็ฝฒไบคๆ˜“ใ€‚ +2. **ๆไบคๅˆฐ Waiver Server**๏ผšๅฐ†็ญพๅ็š„ไบคๆ˜“ๆไบคๅˆฐ Waiver Server APIใ€‚ +3. **ๅค„็†ๅ“ๅบ”**๏ผšWaiver ๆœๅŠกๅ™จๅŒ…่ฃ…ๅนถๅนฟๆ’ญไบคๆ˜“ใ€‚ๅค„็†ๆตๅผ็ป“ๆžœๅนถๅฐ†ไบคๆ˜“ๅ“ˆๅธŒๆ˜พ็คบ็ป™็”จๆˆทใ€‚ ## ๆญฅ้ชค 1๏ผšๅˆ›ๅปบ็”จๆˆท็š„ InnerTx -็”จๆˆทไฝฟ็”จ `gasPrice = 0` ็ญพ็ฝฒๆ ‡ๅ‡†ไบคๆ˜“ใ€‚`to` ๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จๅฟ…้กปๅพ—ๅˆฐ่ฑๅ…็š„ `AllowedTarget` ็ญ–็•ฅ็š„ๅ…่ฎธใ€‚ +็”จๆˆท็ญพ็ฝฒไธ€ไธช `gasPrice = 0` ็š„ๆ ‡ๅ‡†ไบคๆ˜“ใ€‚`to` ๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จๅฟ…้กป็ป่ฟ‡ Waiver ็š„ `AllowedTarget` ็ญ–็•ฅ่ฎธๅฏใ€‚ ```typescript // config.ts @@ -88,7 +88,7 @@ const signedInnerTx = await userWallet.signTransaction(innerTx); ``` :::warning -`gasPrice` ๅฟ…้กปไธบ `0`ใ€‚ๅฆ‚ๆžœๅฎƒไธไธบ้›ถ๏ผŒ่ฑๅ…ๆœๅŠกๅ™จๅฐ†ๆ‹’็ป่ฏฅไบคๆ˜“ใ€‚ +`gasPrice` ๅฟ…้กปไธบ `0`ใ€‚ๅฆ‚ๆžœ้ž้›ถ๏ผŒWaiver ๆœๅŠกๅ™จๅฐ†ๆ‹’็ป่ฏฅไบคๆ˜“ใ€‚ ::: ## ๆญฅ้ชค 2๏ผšๆไบคๅˆฐ Waiver Server @@ -112,7 +112,7 @@ const response = await fetch(`${CONFIG.WAIVER_SERVER}/v1/submit`, { ### ๆ‰น้‡ๆไบค -ๆ‚จๅฏไปฅๅœจๅ•ไธช่ฏทๆฑ‚ไธญๆไบคๅคšไธชๅทฒ็ญพๅ็š„ไบคๆ˜“๏ผš +ๆ‚จๅฏไปฅๅœจไธ€ไธช่ฏทๆฑ‚ไธญๆไบคๅคšไธชๅทฒ็ญพๅ็š„ไบคๆ˜“๏ผš ```typescript body: JSON.stringify({ @@ -120,7 +120,7 @@ body: JSON.stringify({ }) ``` -ๆฏไธช็ป“ๆžœ่กŒ้ƒฝๅŒ…ๅซไธ€ไธช `index` ๅญ—ๆฎต๏ผŒๅฏนๅบ”ไบŽไบคๆ˜“ๅœจๆ•ฐ็ป„ไธญ็š„ไฝ็ฝฎใ€‚ +ๆฏ่กŒ็ป“ๆžœ้ƒฝๅŒ…ๅซไธ€ไธช `index` ๅญ—ๆฎต๏ผŒๅฏนๅบ”ไบŽไบคๆ˜“ๅœจๆ•ฐ็ป„ไธญ็š„ไฝ็ฝฎใ€‚ ## ๆญฅ้ชค 3๏ผšๅค„็†ๅ“ๅบ” @@ -160,26 +160,26 @@ while (true) { ## ้”™่ฏฏไปฃ็  -| **ไปฃ็ ** | **ๆ่ฟฐ** | -| :--- | :--- | -| `PARSE_ERROR` | ๆ— ๆณ•่งฃๆžไบคๆ˜“ | -| `INVALID_REQUEST` | ่ฏทๆฑ‚ๆญฃๆ–‡ๆ ผๅผ้”™่ฏฏ | -| `BATCH_SIZE_EXCEEDED` | ๆ‰น้‡ๅคงๅฐ่ถ…ๅ‡บๅ…่ฎธ็š„ๆœ€ๅคงๅ€ผ | +| **ไปฃ็ ** | **ๆ่ฟฐ** | +| :------------------ | :------------------------ | +| `PARSE_ERROR` | ่งฃๆžไบคๆ˜“ๅคฑ่ดฅ | +| `INVALID_REQUEST` | ่ฏทๆฑ‚ๆญฃๆ–‡ๆ ผๅผ้”™่ฏฏ | +| `BATCH_SIZE_EXCEEDED` | ๆ‰น้‡ๅคงๅฐ่ถ…่ฟ‡ๅ…่ฎธ็š„ๆœ€ๅคงๅ€ผ | | `VALIDATION_FAILED` | ไบคๆ˜“้ชŒ่ฏๅคฑ่ดฅ๏ผˆไพ‹ๅฆ‚๏ผŒ็ญพๅๆ— ๆ•ˆ๏ผŒไธๅ…่ฎธ็š„็›ฎๆ ‡๏ผ‰ | -| `BROADCAST_FAILED` | ๆ— ๆณ•ๅนฟๆ’ญๅˆฐ้“พไธŠ | -| `RATE_LIMITED` | ่ถ…ๅ‡บ้€Ÿ็އ้™ๅˆถ | -| `QUEUE_FULL` | ๆœๅŠกๅ™จ้˜Ÿๅˆ—ๅทฒๆปก | -| `TIMEOUT` | ่ฏทๆฑ‚่ถ…ๆ—ถ | +| `BROADCAST_FAILED` | ๅนฟๆ’ญๅˆฐ้“พๅคฑ่ดฅ | +| `RATE_LIMITED` | ่ถ…ๅ‡บ้€Ÿ็އ้™ๅˆถ | +| `QUEUE_FULL` | ๆœๅŠกๅ™จ้˜Ÿๅˆ—ๅทฒๆปก | +| `TIMEOUT` | ่ฏทๆฑ‚่ถ…ๆ—ถ | -## APIๅ‚่€ƒ +## API ๅ‚่€ƒ ### GET `/v1/health` -ๅฅๅบทๆฃ€ๆŸฅ็ซฏ็‚นใ€‚่ฎค่ฏ๏ผšๆ— ใ€‚ +ๅฅๅบทๆฃ€ๆŸฅ็ซฏ็‚นใ€‚่บซไปฝ้ชŒ่ฏ๏ผšๆ— ใ€‚ ### POST `/v1/submit` -ๆไบคไธ€ๆ‰นๅทฒ็ญพๅ็š„ๅ†…้ƒจไบคๆ˜“ใ€‚่ฎค่ฏ๏ผšๅฟ…้œ€๏ผˆBearer๏ผ‰ใ€‚ +ๆไบคไธ€ๆ‰นๅทฒ็ญพๅ็š„ๅ†…้ƒจไบคๆ˜“ใ€‚่บซไปฝ้ชŒ่ฏ๏ผšๅฟ…้œ€๏ผˆBearer๏ผ‰ใ€‚ **่ฏทๆฑ‚ๆญฃๆ–‡๏ผš** @@ -193,17 +193,17 @@ while (true) { ### GET `/v1/submit` -็”จไบŽๆตๅผๆไบค็š„ WebSocket ๆŽฅๅฃใ€‚่ฎค่ฏ๏ผšๅฟ…้œ€๏ผˆBearer๏ผ‰ใ€‚ +็”จไบŽๆตๅผๆไบค็š„ WebSocket ๆŽฅๅฃใ€‚่บซไปฝ้ชŒ่ฏ๏ผšๅฟ…้œ€๏ผˆBearer๏ผ‰ใ€‚ ## ไธป่ฆๆ”ถ่Žท -- Gas Waiver ๆ˜ฏไธ€็งๆœๅŠกๅ™จ็ซฏ้›†ๆˆ๏ผšๆ‚จ็š„ๅŽ็ซฏๅฐ†ๅทฒ็ญพๅ็š„็”จๆˆทไบคๆ˜“ๆไบคๅˆฐ Waiver Serverใ€‚็”จๆˆทไปŽไธ็›ดๆŽฅไธŽ Waiver Server ไบคไบ’ใ€‚ -- ็”จๆˆทๅง‹็ปˆ็ญพ็ฝฒ InnerTx๏ผŒไปฅไฟๆŒ็ญพๅ็š„ๅฎŒๆ•ดๆ€งใ€‚่ฑๅ…ๆ— ๆณ•ไฟฎๆ”น็”จๆˆท็š„ไบคๆ˜“ใ€‚ -- ็›ฎๆ ‡ๅˆ็บฆๅฟ…้กปๅœจ่ฑๅ…็š„ `AllowedTarget` ๅˆ—่กจไธญใ€‚ +- Gas Waiver ๆ˜ฏไธ€็งๆœๅŠกๅ™จ็ซฏ้›†ๆˆ๏ผšๆ‚จ็š„ๅŽ็ซฏๅฐ†็ญพๅ็š„็”จๆˆทไบคๆ˜“ๆไบคๅˆฐ Waiver Serverใ€‚็”จๆˆทๆฐธ่ฟœไธไผš็›ดๆŽฅไธŽ Waiver Server ไบคไบ’ใ€‚ +- ็”จๆˆทๅง‹็ปˆ็ญพ็ฝฒ InnerTx๏ผŒไปŽ่€ŒไฟๆŒ็ญพๅ็š„ๅฎŒๆ•ดๆ€งใ€‚Waiver ๆ— ๆณ•ไฟฎๆ”น็”จๆˆท็š„ไบคๆ˜“ใ€‚ +- ็›ฎๆ ‡ๅˆ็บฆๅฟ…้กปๅœจ Waiver ็š„ `AllowedTarget` ๅˆ—่กจไธญใ€‚ -## ไธ‹ไธ€ๆญฅๅปบ่ฎฎ +## ไธ‹ไธ€ๆญฅๆŽจ่ -- [**้›ถ Gas ไบคๆ˜“**](/cn/how-to/zero-gas-transactions)๏ผšๆŸฅ็œ‹ไปฅๆผ”็คบไธบไธญๅฟƒ็š„ๆต็จ‹ไปฅๅŠๅฆ‚ไฝ•้ชŒ่ฏๆ”ถๆฎไธŠ็š„้›ถ Gasใ€‚ -- [**่‡ชๆ‰˜็ฎก Gas Waiver**](/cn/how-to/self-hosted-gas-waiver)๏ผš่ฟ่กŒๆ‚จ่‡ชๅทฑ็š„่ฑๅ…๏ผŒๆ— ้œ€ๆ‰˜็ฎก APIใ€‚ +- [**้›ถ Gas ไบคๆ˜“**](/cn/how-to/zero-gas-transactions)๏ผšๆŸฅ็œ‹ไปฅๆผ”็คบไธบ้‡็‚น็š„ๆต็จ‹ไปฅๅŠๅฆ‚ไฝ•้ชŒ่ฏๆ”ถๆฎไธŠ็š„้›ถ Gasใ€‚ +- [**่‡ชๆ‰˜็ฎก Gas Waiver**](/cn/how-to/self-hosted-gas-waiver)๏ผšๆ— ้œ€ๆ‰˜็ฎก API ๅณๅฏ่ฟ่กŒๆ‚จ่‡ชๅทฑ็š„ Waiverใ€‚ - [**Gas Waiver ๅ่ฎฎ**](/cn/reference/gas-waiver-api)๏ผšๅฎŒๆ•ด็š„ๅŒ…่ฃ…ๅ™จไบคๆ˜“่ง„่Œƒๅ’Œๆฒป็†ๆจกๅž‹ใ€‚ -- [**Stable SDK**](/cn/explanation/sdk-overview)๏ผšไฝฟ็”จ็ฑปๅž‹ๅŒ–ๅฎขๆˆท็ซฏ็ญพ็ฝฒ็”จๆˆทไบคๆ˜“๏ผŒ็„ถๅŽๅฐ†ๅ…ถๆไบคๅˆฐ Waiver Serverใ€‚ +- [**้€š่ฟ‡ Gas Waiver ่ฟ›่กŒไธญ็ปง**](/cn/how-to/relay-with-gas-waiver)๏ผšไฝฟ็”จ Enterprise SDK ไปŽๆ‚จ่‡ชๅทฑ็š„ๆฒป็†ๆณจๅ†Œ Waiver ่ตžๅŠฉ Gasใ€‚ diff --git a/docs/pages/cn/how-to/relay-with-gas-waiver.mdx b/docs/pages/cn/how-to/relay-with-gas-waiver.mdx index c88b5db..1dc7e19 100644 --- a/docs/pages/cn/how-to/relay-with-gas-waiver.mdx +++ b/docs/pages/cn/how-to/relay-with-gas-waiver.mdx @@ -1,29 +1,29 @@ --- source_path: how-to/relay-with-gas-waiver.mdx -source_sha: a41b82da40c922244690f2e8e05d8f9ad1f34a99 +source_sha: 9bf96718a01faa7e956c91ad7f931816b6bc544e title: "ไฝฟ็”จ Gas ไปฃไป˜ไธญ็ปง" -description: "้€š่ฟ‡ Enterprise SDK ่ตžๅŠฉ็”จๆˆท็š„ gas๏ผšไธญ็ปง้›ถ gas ไบคๆ˜“ใ€ๆ‰น้‡ไธญ็ปงใ€ๅผบๅˆถๆ‰ง่กŒ็ญ–็•ฅ้™ๅˆถไปฅๅŠไธญ็ปง้ข„็ญพๅไบคๆ˜“ใ€‚" +description: "ไฝฟ็”จ Enterprise SDK ่ตžๅŠฉ็”จๆˆท็š„ gas๏ผšไธญ็ปง้›ถ gas ไบคๆ˜“ใ€ๆ‰น้‡ไธญ็ปงใ€ๅผบๅˆถๆ‰ง่กŒ็ญ–็•ฅ้™ๅˆถไปฅๅŠไธญ็ปง้ข„็ญพๅไบคๆ˜“ใ€‚" diataxis: "how-to" --- # ไฝฟ็”จ Gas ไปฃไป˜ไธญ็ปง -ไฝฟ็”จ `@stablechain/enterprise` ่ตžๅŠฉๆ‚จ็”จๆˆท็š„ gasใ€‚็™ฝๅๅ•ไธญ็š„ไปฃไป˜่ดฆๆˆทไผšๅŒ…่ฃ…็”จๆˆท็š„้›ถ gas ไบคๆ˜“๏ผˆๅ†…้ƒจไบคๆ˜“๏ผ‰๏ผŒๅนถๅฐ†ๅ…ถๅนฟๆ’ญ๏ผŒ่ฟ™ๆ ท็”จๆˆทๅฐฑๅฏไปฅๅœจไธๆŒๆœ‰ไปปไฝ• USDT0 ็š„ๆƒ…ๅ†ตไธ‹่ฟ›่กŒไบคๆ˜“ใ€‚`gasWaiver` ๆจกๅ—ๅœจไธ€ไธช่ฐƒ็”จไธญๆž„ๅปบใ€็ญพๅๅ’Œไธญ็ปง๏ผŒๅ› ๆญคๆ‚จๆฏไธชๆ“ไฝœๅช้œ€่ฐƒ็”จไธ€ไธชๆ–นๆณ•ใ€‚ +ไฝฟ็”จ `@stablechain/enterprise` ่ตžๅŠฉๆ‚จ็”จๆˆท็š„ gasใ€‚ไธ€ไธชๅˆ—ๅ…ฅ็™ฝๅๅ•็š„ไปฃไป˜่ดฆๆˆทไผšๅฐ่ฃ…็”จๆˆท็š„้›ถ gas ไบคๆ˜“๏ผˆInnerTx๏ผ‰ๅนถๅนฟๆ’ญๅฎƒ๏ผŒ่ฟ™ๆ ท็”จๆˆทๆ— ้œ€ๆŒๆœ‰ไปปไฝ• USDT0 ๅณๅฏ่ฟ›่กŒไบคๆ˜“ใ€‚`gasWaiver` ๆจกๅ—ๅœจไธ€ไธช่ฐƒ็”จไธญๅฎŒๆˆๆž„ๅปบใ€็ญพๅๅ’Œไธญ็ปง๏ผŒๅ› ๆญคๆ‚จๅฏไปฅไธบๆฏไธชๆ“ไฝœ่ฐƒ็”จไธ€ไธชๆ–นๆณ•ใ€‚ -ๆฏไธชๆ–นๆณ•้ƒฝ่ฟ”ๅ›ž `H_inner`๏ผŒๅณ็”จๆˆทไบคๆ˜“็š„ๅ“ˆๅธŒ๏ผŒ่€Œไธๆ˜ฏๆบๅธฆๅฎƒ็š„ๅŒ…่ฃ…ๅ™จใ€‚ +ๆฏไธชๆ–นๆณ•้ƒฝ่ฟ”ๅ›ž `H_inner`๏ผŒๅณ็”จๆˆทไบคๆ˜“็š„ๅ“ˆๅธŒ๏ผŒ่€Œไธๆ˜ฏๆ‰ฟ่ฝฝๅฎƒ็š„ๅฐ่ฃ…ๅ™จใ€‚ ## ๅ…ˆๅ†ณๆกไปถ - Node.js 20 ๆˆ–ๆ›ด้ซ˜็‰ˆๆœฌ๏ผŒๅนถๅฎ‰่ฃ…ไบ† `@stablechain/enterprise` ๅ’Œ `viem`ใ€‚่ฏทๅ‚้˜… [Enterprise SDK ๅ‚่€ƒ](/cn/reference/enterprise-sdk#install)ใ€‚ -- ๆฒป็†ๆณจๅ†Œ็š„ไปฃไป˜ๅฏ†้’ฅใ€‚Enterprise SDK ๅœจ Stable ไธป็ฝ‘ๅ’Œ Stable ๆต‹่ฏ•็ฝ‘ไธŠ่ฟ่กŒ๏ผŒ่ฎฟ้—ฎๅ—้™๏ผš[่”็ณป Stable](https://discord.gg/stablexyz) ่Žทๅ–็™ฝๅๅ•ไปฃไป˜ๅฏ†้’ฅใ€‚ +- ็ป่ฟ‡ๆฒป็†ๆณจๅ†Œ็š„ไปฃไป˜ๅฏ†้’ฅใ€‚Enterprise SDK ๅœจ Stable ไธป็ฝ‘ๅ’Œ Stable ๆต‹่ฏ•็ฝ‘ไธŠ่ฟ่กŒ๏ผŒ่ฎฟ้—ฎๅ—้™๏ผš่ฏท[่”็ณป Stable](https://discord.gg/stablexyz) ไปฅ่Žทๅ–็™ฝๅๅ•ไปฃไป˜ๅฏ†้’ฅใ€‚ :::warning -่ฟ™ๆ˜ฏไธ€ไธชไฝฟ็”จ็ง้’ฅ่ฟ›่กŒ็ญพๅ็š„ๆœๅŠกๅ™จ็ซฏๅบ“ใ€‚ๅˆ‡ๅ‹ฟๅœจๆต่งˆๅ™จไธญ่ฟ่กŒๅฎƒใ€‚่ฏทๅฐ†ไปฃไป˜ๅฏ†้’ฅไฟๅญ˜ๅœจๆ‚จ็š„ๅŽ็ซฏใ€‚ +่ฟ™ๆ˜ฏไธ€ไธชไฝฟ็”จ็ง้’ฅ่ฟ›่กŒ็ญพๅ็š„ๆœๅŠกๅ™จ็ซฏๅบ“ใ€‚ๅˆ‡ๅ‹ฟๅœจๆต่งˆๅ™จไธญ่ฟ่กŒๅฎƒใ€‚ๅฐ†ไปฃไป˜ๅฏ†้’ฅไฟๅญ˜ๅœจๆ‚จ็š„ๅŽ็ซฏใ€‚ ::: ## 1. ไฝฟ็”จ Gas ไปฃไป˜ๆจกๅ—ๅˆ›ๅปบๅฎขๆˆท็ซฏ -ๅฐ† `gasWaiver: { account }` ไผ ้€’็ป™ `createStableEnterprise`๏ผŒๅ…ถไธญ `account` ๆ˜ฏๆ‚จ็š„็™ฝๅๅ•ไปฃไป˜ๅฏ†้’ฅใ€‚ๅชๆœ‰ๅœจ้…็ฝฎๅŽ๏ผŒๆจกๅ—ๆ‰ไผšๅœจๅฎขๆˆท็ซฏไธŠๅ‡บ็Žฐใ€‚ +ๅฐ† `gasWaiver: { account }` ไผ ้€’็ป™ `createStableEnterprise`๏ผŒๅ…ถไธญ `account` ๆ˜ฏๆ‚จๅˆ—ๅ…ฅ็™ฝๅๅ•็š„ไปฃไป˜ๅฏ†้’ฅใ€‚ๅชๆœ‰ๅœจๆ‚จ้…็ฝฎๅฎƒๆ—ถ๏ผŒ่ฏฅๆจกๅ—ๆ‰ไผšๅœจๅฎขๆˆท็ซฏไธŠๅ‡บ็Žฐใ€‚ ```ts import { createStableEnterprise, stable } from "@stablechain/enterprise"; @@ -41,7 +41,7 @@ const gw = enterprise.gasWaiver; StableEnterpriseClient { gasWaiver, guaranteedBlock: undefined, guaranteedWaiver: undefined } ``` -`rpcEndpoints` ้€‰้กนๆ˜ฏๅฏ้€‰็š„ใ€‚ๅฆ‚ๆžœไธ่ฎพ็ฝฎ๏ผŒๅฎขๆˆท็ซฏๅฐ†ไฝฟ็”จ้“พ็š„ๅ†…็ฝฎ RPCใ€‚ +`rpcEndpoints` ้€‰้กนๆ˜ฏๅฏ้€‰็š„ใ€‚ๅฆ‚ๆžœๆœช่ฎพ็ฝฎ๏ผŒๅฎขๆˆท็ซฏๅฐ†ไฝฟ็”จ้“พ็š„ๅ†…็ฝฎ RPCใ€‚ :::tip ่ฆๅฐ†ไปฃไป˜ๅฏ†้’ฅไฟๅญ˜ๅœจๆ‰˜็ฎกๅŽ็ซฏไธญ๏ผŒ่ฏทไผ ้€’ `signer` ่€Œไธๆ˜ฏ `account`ใ€‚ๆฅ่‡ช `@stablechain/enterprise/aws-kms` ็š„ `awsKmsSigner` ๆ”ฏๆŒ AWS KMSใ€‚่ฏทๅ‚้˜…[็ญพๅๅฏ†้’ฅๅ’Œๆ‰˜็ฎก](/cn/reference/enterprise-sdk#signing-keys-and-custody)ใ€‚ @@ -49,7 +49,7 @@ StableEnterpriseClient { gasWaiver, guaranteedBlock: undefined, guaranteedWaiver ## 2. ไธญ็ปงๅ•ไธชไบคๆ˜“ -ไฝฟ็”จ็”จๆˆท่ดฆๆˆทๅ’Œๅ˜ๅŒ–็š„ๅญ—ๆฎต่ฐƒ็”จ `send`ใ€‚`gasPrice: 0`ใ€้—็•™็ฑปๅž‹ใ€`chainId` ๅ’Œๅพ…ๅค„็† nonce ้ƒฝๅทฒไธบๆ‚จๅค„็†๏ผŒๅ› ๆญคๆ‚จๅช้œ€ไผ ้€’ `to`๏ผŒไปฅๅŠๅฏ้€‰็š„ `data`ใ€`value` ๅ’Œ `gas`ใ€‚ +ไฝฟ็”จ็”จๆˆท็š„่ดฆๆˆทๅ’Œๅ˜ๅŒ–็š„ๅญ—ๆฎต่ฐƒ็”จ `send`ใ€‚`gasPrice: 0`ใ€ๆ—ง็‰ˆ็ฑปๅž‹ใ€`chainId` ๅ’Œๅพ…ๅค„็† nonce ไผšไธบๆ‚จๅค„็†๏ผŒๅ› ๆญคๆ‚จๅช้œ€ไผ ้€’ `to`๏ผŒไปฅๅŠๅฏ้€‰็š„ `data`ใ€`value` ๅ’Œ `gas`ใ€‚ ```ts const user = privateKeyToAccount(process.env.USER_PRIVATE_KEY as `0x${string}`); @@ -62,11 +62,11 @@ console.log("H_inner:", txHash); H_inner: 0x8f3a...2d41 ``` -็”จๆˆทไธ้œ€่ฆ USDT0๏ผšไปฃไป˜่ดฆๆˆท่ตžๅŠฉ gasใ€‚`gas` ้ป˜่ฎคไธบ `150_000n` (`DEFAULT_INNER_GAS`)๏ผŒ่ถณไปฅ่ฆ†็›–ไปฃๅธ่ฝฌ่ดฆๆˆ–ๆ‰นๅ‡†ใ€‚ๅฏนไบŽๆ›ด็น้‡็š„่ฐƒ็”จ๏ผŒ่ฏทไผ ้€’ๆ˜Ž็กฎ็š„ `gas`ใ€‚ +็”จๆˆทไธ้œ€่ฆ USDT0๏ผšไปฃไป˜่ดฆๆˆทไผš่ตžๅŠฉ gasใ€‚`gas` ้ป˜่ฎคไธบ `150_000n` (`DEFAULT_INNER_GAS`)๏ผŒ่ถณไปฅ่ฆ†็›–ไปฃๅธ่ฝฌ่ดฆๆˆ–ๆ‰นๅ‡†ใ€‚ๅฏนไบŽๆ›ด้‡็š„่ฐƒ็”จ๏ผŒ่ฏทไผ ้€’ๆ˜พๅผ็š„ `gas`ใ€‚ -## 3. ไธญ็ปงๆ‰นๅค„็† +## 3. ไธญ็ปงๆ‰น้‡ไบคๆ˜“ -่ฐƒ็”จ `sendBatch` ไธญ็ปงๆฅ่‡ชไธ€ไธช่ดฆๆˆท็š„ๅคšไธชไบคๆ˜“ใ€‚Nonce ไผšไปŽ่ดฆๆˆท็š„ๅพ…ๅค„็† nonce ่‡ชๅŠจๆŽ’ๅบ๏ผŒๅนถไธ”ๆ‚จไผšๆŒ‰็…ง่พ“ๅ…ฅ้กบๅบ่Žทๅพ—ๆฏไธช่พ“ๅ…ฅ็š„ๅ•ไธช็ป“ๆžœใ€‚ +่ฐƒ็”จ `sendBatch` ไปฅไธญ็ปงๆฅ่‡ชไธ€ไธช่ดฆๆˆท็š„ๅคšไธชไบคๆ˜“ใ€‚Nonce ไผšๆ นๆฎ่ดฆๆˆท็š„ๅพ…ๅค„็† nonce ่‡ชๅŠจๆŽ’ๅบ๏ผŒๅนถไธ”ๆ‚จไผšๆŒ‰่พ“ๅ…ฅ้กบๅบ่Žทๅพ—ๆฏไธช่พ“ๅ…ฅ็š„ไธ€ไธช็ป“ๆžœใ€‚ ```ts const results = await gw.sendBatch(user, [ @@ -84,11 +84,11 @@ for (const r of results) { [1] โœ” 0x2b7c...9e04 ``` -ๆ‰นๅค„็†ไผšๆ นๆฎ `result.error` ๆŠฅๅ‘Šๆฏไธช้กน็›ฎ็š„ๅคฑ่ดฅ๏ผŒ่€Œไธๆ˜ฏๆŠ›ๅ‡บๅผ‚ๅธธ๏ผŒๅ› ๆญคไธ€ไธช็ณŸ็ณ•็š„ไบคๆ˜“ไธไผšๅฏผ่‡ดๅ…ถไฝ™ไบคๆ˜“ๅคฑ่ดฅใ€‚ +ๆ‰น้‡ๆŠฅๅ‘Šๅคฑ่ดฅๆ—ถ๏ผŒๆฏไธช้กน็›ฎ็š„้”™่ฏฏ้ƒฝๅœจ `result.error` ไธญ๏ผŒ่€Œไธๆ˜ฏๆŠ›ๅ‡บๅผ‚ๅธธ๏ผŒๅ› ๆญคไธ€ไธช็ณŸ็ณ•็š„ไบคๆ˜“ไธไผšๅฏผ่‡ดๅ…ถไฝ™ไบคๆ˜“ๅคฑ่ดฅใ€‚ ## 4. ๆ‰ง่กŒๆฏไธชๅˆไฝœไผ™ไผด็š„็ญ–็•ฅ้™ๅˆถ -้€š่ฟ‡ๅœจ้…็ฝฎไธญๆทปๅŠ ็ญ–็•ฅ้™ๅˆถๆฅ้™ๅˆถไปฃไป˜ๅฏ†้’ฅๅฏไปฅ่ตžๅŠฉ็š„ๅ†…ๅฎนใ€‚่ฟๅ้™ๅˆถ็š„ๅ†…้ƒจไบคๆ˜“ไผšๅœจๅนฟๆ’ญๅ‰่ขซๆ‹’็ปใ€‚ +้€š่ฟ‡ๅ‘้…็ฝฎๆทปๅŠ ็ญ–็•ฅ้™ๅˆถๆฅ้™ๅˆถไปฃไป˜ๅฏ†้’ฅๅฏไปฅ่ตžๅŠฉ็š„ๅ†…ๅฎนใ€‚่ฟๅ้™ๅˆถ็š„ InnerTx ไผšๅœจๅนฟๆ’ญไน‹ๅ‰่ขซๆ‹’็ปใ€‚ ```ts const enterprise = createStableEnterprise({ @@ -104,16 +104,16 @@ const enterprise = createStableEnterprise({ }); ``` -็›ฎๆ ‡ๅˆ็บฆไธๅœจ `allowedTargets` ไธญ็š„ไบคๆ˜“ๅฐ†ๅ›  `TARGET_NOT_ALLOWED` ่€Œๅคฑ่ดฅ๏ผ›่ถ…่ฟ‡ `maxGasLimit` ็š„ไบคๆ˜“ๅฐ†ๅ›  `GAS_LIMIT_EXCEEDED` ่€Œๅคฑ่ดฅใ€‚ไฝฟ็”จ `"*"` ไฝœไธบ `address` ๅ…่ฎธไปปไฝ•ๅˆ็บฆ๏ผŒ็œ็•ฅ `selectors` ๅ…่ฎธไปปไฝ•ๆ–นๆณ•ใ€‚ +็›ฎๆ ‡ๅœจ `allowedTargets` ไน‹ๅค–็š„ไบคๆ˜“ไผšๅคฑ่ดฅๅนถๆ˜พ็คบ `TARGET_NOT_ALLOWED`๏ผ›่ถ…่ฟ‡ `maxGasLimit` ็š„ไบคๆ˜“ไผšๅคฑ่ดฅๅนถๆ˜พ็คบ `GAS_LIMIT_EXCEEDED`ใ€‚ไฝฟ็”จ `"*"` ไฝœไธบ `address` ไปฅๅ…่ฎธไปปไฝ•ๅˆ็บฆ๏ผŒๅนถ็œ็•ฅ `selectors` ไปฅๅ…่ฎธไปปไฝ•ๆ–นๆณ•ใ€‚ ## 5. ไธญ็ปง้ข„็ญพๅไบคๆ˜“ -ๅฏนไบŽ้žๆ‰˜็ฎกๆต็จ‹๏ผŒ็”จๆˆทๅœจๅ…ถ่‡ชๅทฑ็š„็Žฏๅขƒไธญ็ญพ็ฝฒๅ†…้ƒจไบคๆ˜“๏ผŒๅนถๅชๅฐ†็ญพๅ็š„ๅๅ…ญ่ฟ›ๅˆถๅญ—็ฌฆไธฒไบค็ป™ๆ‚จ๏ผŒๅ› ๆญคๆ‚จๆฐธ่ฟœไธไผš็œ‹ๅˆฐไป–ไปฌ็š„ๅฏ†้’ฅใ€‚ไฝฟ็”จ `buildWaiverInnerTx` ๆž„ๅปบๅฎƒ๏ผŒ็„ถๅŽไฝฟ็”จ `relay` ไธญ็ปงๅฎƒใ€‚ +ๅฏนไบŽ้žๆ‰˜็ฎกๆต็จ‹๏ผŒ็”จๆˆทๅœจๅ…ถ่‡ชๅทฑ็š„็Žฏๅขƒไธญ็ญพ็ฝฒ InnerTx ๅนถไป…ๅฐ†็ญพๅๅๅ…ญ่ฟ›ๅˆถไบค็ป™ๆ‚จ๏ผŒ่ฟ™ๆ ทๆ‚จๅฐฑๆฐธ่ฟœ็œ‹ไธๅˆฐไป–ไปฌ็š„ๅฏ†้’ฅใ€‚ไฝฟ็”จ `buildWaiverInnerTx` ๆž„ๅปบๅฎƒ๏ผŒ็„ถๅŽไฝฟ็”จ `relay` ไธญ็ปงๅฎƒใ€‚ ```ts import { buildWaiverInnerTx, toSigner } from "@stablechain/enterprise"; -// ๅœจ็”จๆˆท็ซฏ โ€” buildWaiverInnerTx ้€š่ฟ‡ Signer ็ญพๅ๏ผ›toSigner ้€‚้… viem ่ดฆๆˆท +// ๅœจ็”จๆˆท็ซฏ - buildWaiverInnerTx ้€š่ฟ‡ Signer ็ญพๅ๏ผ›toSigner ้€‚้… viem ่ดฆๆˆท const signed = await buildWaiverInnerTx(toSigner(user), stable.id, { to: token, data, gas: 150_000n, nonce }); // ๅœจๆ‚จ็š„ๅŽ็ซฏ @@ -129,7 +129,7 @@ H_inner: 0x8f3a...2d41 ## ๅค„็†ๆ‹’็ป -`send` ๅ’Œ `relay` ๅœจๆ‹’็ปๆ—ถไผšๆŠ›ๅ‡บ `StableEnterpriseRelayError`๏ผŒๅ…ถไธญๅŒ…ๅซไธ€ไธชๆ‚จๅฏไปฅ่ฟ›่กŒๅˆ†ๆ”ฏๅˆคๆ–ญ็š„ `code`ใ€‚ +`send` ๅ’Œ `relay` ๅœจๆ‹’็ปๆ—ถไผšๆŠ›ๅ‡บ `StableEnterpriseRelayError`๏ผŒๅ…ถไธญๅŒ…ๅซไธ€ไธชๆ‚จๅฏไปฅๆ นๆฎๅ…ถ่ฟ›่กŒๅˆ†ๆ”ฏ็š„ `code`ใ€‚ ```ts import { StableEnterpriseRelayError } from "@stablechain/enterprise"; @@ -138,7 +138,7 @@ try { await gw.send(user, { to: token, data }); } catch (err) { if (err instanceof StableEnterpriseRelayError && err.code === "TARGET_NOT_ALLOWED") { - // ๅ†…้ƒจไบคๆ˜“็›ฎๆ ‡ไธๅœจ้…็ฝฎ็š„ๅ…่ฎธๅˆ—่กจไธญ + // InnerTx ็›ฎๆ ‡ไธๅœจ้…็ฝฎ็š„ๅ…่ฎธๅˆ—่กจไธญ } throw err; } @@ -148,10 +148,11 @@ try { StableEnterpriseRelayError: relay failed [TARGET_NOT_ALLOWED]: target 0x... not allowed ``` -ๆœ‰ๅ…ณๆ‰€ๆœ‰ๆ‹’็ปๅŽŸๅ› ็š„ๅฎŒๆ•ดไฟกๆฏ๏ผŒ่ฏทๅ‚้˜…ๅฎŒๆ•ด็š„ [`ErrorCode`](/cn/reference/enterprise-sdk#errorcode) ่กจใ€‚ +่ฏทๅ‚้˜…ๅฎŒๆ•ด็š„ [`ErrorCode`](/cn/reference/enterprise-sdk#errorcode) ่กจๆ ผ๏ผŒไบ†่งฃๆ‰€ๆœ‰ๆ‹’็ปๅŽŸๅ› ใ€‚ -## ๅŽ็ปญๆญฅ้ชค +## ๆŽฅไธ‹ๆฅๅŽปๅ“ช้‡Œ -- [**ๅ‘้€ไฟ่ฏไบคๆ˜“**](/cn/how-to/send-guaranteed-transactions)๏ผšๅœจไฟ็•™็š„ Enterprise ้€š้“ๅŒบๅ—็ฉบ้—ดไธญๅ‘้€ไบคๆ˜“๏ผŒๅนถ็ป“ๅˆ Gas ไปฃไป˜ใ€‚ -- [**Enterprise SDK ๅ‚่€ƒ**](/cn/reference/enterprise-sdk#relay-with-gas-waiver)๏ผšๆ‰€ๆœ‰ๆ–นๆณ•ใ€้…็ฝฎ้€‰้กนๅ’Œ้”™่ฏฏ็ฑป็š„ๅฎŒๆ•ดไฟกๆฏใ€‚ -- [**Gas ไปฃไป˜**](/cn/explanation/gas-waiver)๏ผš้›ถ gas ไบคๆ˜“ๅœจๅ่ฎฎๅฑ‚ๅฆ‚ไฝ•ๅทฅไฝœใ€‚ +- [**ๅ‘้€ๆ‹…ไฟไบคๆ˜“**](/cn/how-to/send-guaranteed-transactions)๏ผšๅฐ†ไบคๆ˜“ๆ”พๅ…ฅไฟ็•™็š„ Enterprise-lane ๅŒบๅ—็ฉบ้—ด๏ผŒๅนถๅฐ†ๅ…ถไธŽ gas ไปฃไป˜็ป“ๅˆไฝฟ็”จใ€‚ +- [**Enterprise SDK ๅ‚่€ƒ**](/cn/reference/enterprise-sdk#relay-with-gas-waiver)๏ผšๆ‰€ๆœ‰ๆ–นๆณ•ใ€้…็ฝฎ้€‰้กนๅ’Œ้”™่ฏฏ็ฑป็š„ๅฎŒๆ•ด่ฏดๆ˜Žใ€‚ +- [**Gas ไปฃไป˜**](/cn/explanation/gas-waiver)๏ผš้›ถ gas ไบคๆ˜“ๅœจๅ่ฎฎๅฑ‚้ข็š„ๅทฅไฝœๅŽŸ็†ใ€‚ +- [**ๅฏ็”จๆ—  gas ไบคๆ˜“**](/cn/how-to/integrate-gas-waiver)๏ผšไฝฟ็”จ Stable ๆ‰˜็ฎก็š„ไปฃไป˜ๆœๅŠกๅ™จ๏ผŒ่€Œไธๆ˜ฏๆณจๅ†Œๆ‚จ่‡ชๅทฑ็š„ไปฃไป˜ใ€‚ diff --git a/docs/pages/cn/how-to/self-hosted-gas-waiver.mdx b/docs/pages/cn/how-to/self-hosted-gas-waiver.mdx index c427ede..a220a5c 100644 --- a/docs/pages/cn/how-to/self-hosted-gas-waiver.mdx +++ b/docs/pages/cn/how-to/self-hosted-gas-waiver.mdx @@ -1,38 +1,43 @@ --- source_path: how-to/self-hosted-gas-waiver.mdx -source_sha: c054baff79a39314af7a4aaa087bd4525dfc7f12 -title: "่‡ชๆ‰˜็ฎก็‡ƒๆฐ”่ดนไปฃไป˜" -description: "ๅœจ Stable ไธŠ่ฟ่กŒๆ‚จ่‡ชๅทฑ็š„็‡ƒๆฐ”่ดนไปฃไป˜ๆœๅŠกใ€‚้€š่ฟ‡ๆฒป็†ๆณจๅ†Œไปฃไป˜ๅœฐๅ€๏ผŒๆž„ๅปบๅฐ่ฃ…ๅ™จไบคๆ˜“๏ผŒ็„ถๅŽๆ— ้œ€ๆ‰˜็ฎกๆœๅŠกๅ™จๅณๅฏๅนฟๆ’ญๅฎƒไปฌใ€‚" +source_sha: 9954e27c1926c87e7fdb45e5c7543e56f6594250 +title: "่‡ชๆ‰˜็ฎก Gas ่ฑๅ…" +description: "ๅœจ Stable ไธŠ่ฟ่กŒๆ‚จ่‡ชๅทฑ็š„ Gas ่ฑๅ…ใ€‚้€š่ฟ‡ๆฒป็†ๆณจๅ†Œ่ฑๅ…ๅœฐๅ€๏ผŒๆž„ๅปบๅฐ่ฃ…ไบคๆ˜“๏ผŒๅนถๅนฟๆ’ญๅฎƒไปฌ๏ผŒ่€Œๆ— ้œ€ๆ‰˜็ฎกๆœๅŠกๅ™จใ€‚" diataxis: "how-to" --- -# ่‡ชๆ‰˜็ฎก็‡ƒๆฐ”่ดนไปฃไป˜ -่‡ชๆ‰˜็ฎก็‡ƒๆฐ”่ดนไปฃไป˜่ฎฉๆ‚จๅฏไปฅๆ“ไฝœ่‡ชๅทฑ็š„ไปฃไป˜ๅŸบ็ก€่ฎพๆ–ฝ๏ผŒ่€Œไธๆ˜ฏไฝฟ็”จๆ‰˜็ฎก็š„Waiver Server APIใ€‚ๆ‚จ้€š่ฟ‡้“พไธŠๆฒป็†ๆณจๅ†Œไธ€ไธชไปฃไป˜ๅœฐๅ€๏ผŒ็„ถๅŽ็›ดๆŽฅๅ‘็ฝ‘็ปœๅนฟๆ’ญๅฐ่ฃ…ๅ™จไบคๆ˜“ใ€‚ +# ่‡ชๆ‰˜็ฎก Gas ่ฑๅ… -ๆœฌๆŒ‡ๅ—ๆถต็›–ๆณจๅ†Œไปฃไป˜ๅœฐๅ€ใ€ๆ”ถ้›†ๅทฒ็ญพๅ็š„็”จๆˆทไบคๆ˜“ใ€ๆž„ๅปบๅฐ่ฃ…ๅ™จไบคๆ˜“ไปฅๅŠๅนฟๆ’ญๅฎƒไปฌใ€‚ +่‡ชๆ‰˜็ฎก Gas ่ฑๅ…ๅ…่ฎธๆ‚จๆ“ไฝœ่‡ชๅทฑ็š„่ฑๅ…ๅŸบ็ก€่ฎพๆ–ฝ๏ผŒ่€Œไธๆ˜ฏไฝฟ็”จๆ‰˜็ฎก็š„่ฑๅ…ๆœๅŠกๅ™จ APIใ€‚ๆ‚จ้€š่ฟ‡้“พไธŠๆฒป็†ๆณจๅ†Œไธ€ไธช่ฑๅ…ๅœฐๅ€๏ผŒ็„ถๅŽ็›ดๆŽฅๅ‘็ฝ‘็ปœๅนฟๆ’ญๅฐ่ฃ…ไบคๆ˜“ใ€‚ + +ๆœฌๆŒ‡ๅ—ๆถต็›–ไบ†ๆณจๅ†Œ่ฑๅ…ๅœฐๅ€ใ€ๆ”ถ้›†ๅทฒ็ญพๅ็š„็”จๆˆทไบคๆ˜“ใ€ๆž„ๅปบๅฐ่ฃ…ไบคๆ˜“ไปฅๅŠๅนฟๆ’ญๅฎƒไปฌใ€‚ :::note -**ๆฆ‚ๅฟต๏ผš** ๅ…ณไบŽ็‡ƒๆฐ”่ดนไปฃไป˜ๆ˜ฏไป€ไนˆไปฅๅŠๅฎƒไธบไป€ไนˆๅญ˜ๅœจ๏ผŒ่ฏทๅ‚้˜…[็‡ƒๆฐ”่ดนไปฃไป˜](/cn/explanation/gas-waiver)ใ€‚ๆœ‰ๅ…ณๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผˆๅฐ่ฃ…ๅ™จไบคๆ˜“ๆœบๅˆถใ€ๆŽˆๆƒใ€็ญ–็•ฅๆฃ€ๆŸฅใ€ๆ‰ง่กŒ่ฏญไน‰ใ€ๅฎ‰ๅ…จๆจกๅž‹๏ผ‰๏ผŒ่ฏทๅ‚้˜…[็‡ƒๆฐ”่ดนไปฃไป˜ๅ่ฎฎ](/cn/reference/gas-waiver-api)ใ€‚ +**ๆฆ‚ๅฟต๏ผš** ๆœ‰ๅ…ณ Gas ่ฑๅ…ๆ˜ฏไป€ไนˆไปฅๅŠไธบไป€ไนˆๅญ˜ๅœจ๏ผŒ่ฏทๅ‚้˜…[Gas ่ฑๅ…](/cn/explanation/gas-waiver)ใ€‚ๆœ‰ๅ…ณๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผˆๅฐ่ฃ…ไบคๆ˜“ๆœบๅˆถใ€ๆŽˆๆƒใ€็ญ–็•ฅๆฃ€ๆŸฅใ€ๆ‰ง่กŒ่ฏญไน‰ใ€ๅฎ‰ๅ…จๆจกๅž‹๏ผ‰๏ผŒ่ฏทๅ‚้˜…[Gas ่ฑๅ…ๅ่ฎฎ](/cn/reference/gas-waiver-api)ใ€‚ ::: -ๆœ‰ๅ…ณๆ‰˜็ฎกWaiver Server API้›†ๆˆ่ทฏๅพ„๏ผŒ่ฏทๅ‚้˜…[ๅฏ็”จๅ…็‡ƒๆฐ”่ดนไบคๆ˜“](/cn/how-to/integrate-gas-waiver)ใ€‚ +ๆœ‰ๅ…ณๆ‰˜็ฎก็š„่ฑๅ…ๆœๅŠกๅ™จ API ้›†ๆˆ่ทฏๅพ„๏ผŒ่ฏทๅ‚้˜…[ๅฏ็”จๅ… Gas ไบคๆ˜“](/cn/how-to/integrate-gas-waiver)ใ€‚ + +:::tip +`@stablechain/enterprise` ๅœจไธ€ๆฌก่ฐƒ็”จไธญ้’ˆๅฏน็›ธๅŒ็š„ๆฒป็†ๆณจๅ†Œ่ฑๅ…ๅฎŒๆˆไบ†ไปฅไธ‹ๆ‰€ๆœ‰ๆ“ไฝœใ€‚ๅฆ‚ๆžœๆ‚จๆญฃๅœจ็ผ–ๅ†™ TypeScript๏ผŒ่ฏทไฝฟ็”จ[ไฝฟ็”จ Gas ่ฑๅ…่ฟ›่กŒไธญ็ปง](/cn/how-to/relay-with-gas-waiver)๏ผŒ่€Œไธๆ˜ฏๆ‰‹ๅŠจๆž„ๅปบๅฐ่ฃ…ไบคๆ˜“ใ€‚ +::: ## ๅ…ˆๅ†ณๆกไปถ -- ไธ€ไธช้€š่ฟ‡้ชŒ่ฏ่€…ๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„ไปฃไป˜ๅœฐๅ€ใ€‚ -- ไธบๆ‚จ็š„็›ฎๆ ‡ๅˆ็บฆ้…็ฝฎไบ†`AllowedTarget`็ญ–็•ฅใ€‚ +- ้€š่ฟ‡้ชŒ่ฏๅ™จๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„่ฑๅ…ๅœฐๅ€ใ€‚ +- ไธบๆ‚จ็š„็›ฎๆ ‡ๅˆ็บฆ้…็ฝฎไบ† `AllowedTarget` ็ญ–็•ฅใ€‚ -## ๆฆ‚่งˆ +## ๆฆ‚่ฟฐ ่‡ชๆ‰˜็ฎกๆต็จ‹๏ผš -1. **ๆ”ถ้›†ๅทฒ็ญพๅ็š„ InnerTx**๏ผŒๅ…ถไธญ็”จๆˆท็š„`gasPrice = 0`ใ€‚ +1. **ไปŽ็”จๆˆท้‚ฃ้‡Œๆ”ถ้›†ๅทฒ็ญพๅ็š„ InnerTx**๏ผŒๅ…ถไธญ `gasPrice = 0`ใ€‚ 2. **ๆž„ๅปบ WrapperTx**๏ผšRLP ็ผ–็  InnerTx ๅนถๅฐ†ๅ…ถๅฐ่ฃ…ๅœจๅ‘้€ๅˆฐๆ ‡่ฎฐๅœฐๅ€็š„ไบคๆ˜“ไธญใ€‚ -3. **้€š่ฟ‡ `eth_sendRawTransaction` ๅนฟๆ’ญ** WrapperTxใ€‚ +3. ้€š่ฟ‡ `eth_sendRawTransaction` **ๅนฟๆ’ญ** WrapperTxใ€‚ ## ๆญฅ้ชค 1๏ผšๆ”ถ้›†็”จๆˆท็š„ InnerTx -็”จๆˆท็ญพ็ฝฒไธ€ไธช`gasPrice = 0`็š„ไบคๆ˜“ใ€‚`to`ๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จๅฟ…้กปไธŽๆ‚จ็š„ไปฃไป˜็š„`AllowedTarget`็ญ–็•ฅๅŒน้…ใ€‚ +็”จๆˆท็ญพ็ฝฒไธ€ไธช `gasPrice = 0` ็š„ไบคๆ˜“ใ€‚`to` ๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จๅฟ…้กปไธŽๆ‚จ็š„่ฑๅ…็š„ `AllowedTarget` ็ญ–็•ฅๅŒน้…ใ€‚ ```typescript // config.ts @@ -83,7 +88,7 @@ const signedInnerTx = await userWallet.signTransaction(innerTx); ## ๆญฅ้ชค 2๏ผšๆž„ๅปบ WrapperTx -RLP ็ผ–็ ๅทฒ็ญพๅ็š„ InnerTx ๅนถๅฐ†ๅ…ถๅฐ่ฃ…ๅœจๅ‘้€ๅˆฐๆ ‡่ฎฐๅœฐๅ€็š„ไบคๆ˜“ไธญใ€‚`gasLimit`ๅฟ…้กป่ฆ†็›–ๅ†…้ƒจๆ‰ง่กŒๅ’Œๅฐ่ฃ…ๅผ€้”€ใ€‚ +RLP ็ผ–็ ๅทฒ็ญพๅ็š„ InnerTx ๅนถๅฐ†ๅ…ถๅฐ่ฃ…ๅœจๅ‘้€ๅˆฐๆ ‡่ฎฐๅœฐๅ€็š„ไบคๆ˜“ไธญใ€‚`gasLimit` ๅฟ…้กป่ฆ†็›–ๅ†…้ƒจๆ‰ง่กŒๅ’Œๅฐ่ฃ…ๅผ€้”€ใ€‚ ```typescript // constructWrapper.ts @@ -109,7 +114,7 @@ const signedWrapperTx = await waiverWallet.signTransaction(wrapperTx); ``` :::warning -`InnerTx.gasPrice`ๅ’Œ`WrapperTx.gasPrice`้ƒฝๅฟ…้กปไธบ`0`ใ€‚`WrapperTx.value`ไนŸๅฟ…้กปไธบ`0`ใ€‚ๅฆ‚ๆžœ่ฟ™ไบ›ๆกไปถไธญ็š„ไปปไฝ•ไธ€ไธชไธๆปก่ถณ๏ผŒ้ชŒ่ฏ่€…ๅฐ†ๆ‹’็ป่ฏฅไบคๆ˜“ใ€‚ +`InnerTx.gasPrice` ๅ’Œ `WrapperTx.gasPrice` ้ƒฝๅฟ…้กปไธบ `0`ใ€‚`WrapperTx.value` ไนŸๅฟ…้กปไธบ `0`ใ€‚ๅฆ‚ๆžœ่ฟ™ไบ›ๆกไปถไธญ็š„ไปปไฝ•ไธ€ไธชไธๆปก่ถณ๏ผŒ้ชŒ่ฏๅ™จๅฐ†ๆ‹’็ป่ฏฅไบคๆ˜“ใ€‚ ::: ## ๆญฅ้ชค 3๏ผšๅนฟๆ’ญ @@ -132,12 +137,12 @@ Confirmed: true ## ไธป่ฆๆ”ถ่Žท -- ่‡ชๆ‰˜็ฎกไปฃไป˜้œ€่ฆ้€š่ฟ‡้“พไธŠ้ชŒ่ฏ่€…ๆฒป็†ๆณจๅ†Œไธ€ไธชไปฃไป˜ๅœฐๅ€ใ€‚ -- WrapperTx ไผšๅ‘้€ๅˆฐๆ ‡่ฎฐๅœฐๅ€ (`0x...f333`)๏ผŒๆ•ฐๆฎไธบ RLP ็ผ–็ ็š„ InnerTxใ€‚ -- InnerTx ๅ’Œ WrapperTx ็š„ `gasPrice` ้ƒฝๅฟ…้กปไธบ `0`๏ผŒไธ” `value` ไนŸๅฟ…้กปไธบ `0`ใ€‚ +- ่‡ชๆ‰˜็ฎก่ฑๅ…้œ€่ฆ้€š่ฟ‡้“พไธŠ้ชŒ่ฏๅ™จๆฒป็†ๆณจๅ†Œ็š„่ฑๅ…ๅœฐๅ€ใ€‚ +- WrapperTx ่ขซๅ‘้€ๅˆฐๆ ‡่ฎฐๅœฐๅ€ (`0x...f333`)๏ผŒๅ…ถไธญ RLP ็ผ–็ ็š„ InnerTx ไฝœไธบๆ•ฐๆฎใ€‚ +- InnerTx ๅ’Œ WrapperTx ้ƒฝๅฟ…้กปๅ…ทๆœ‰ `gasPrice = 0` ๅ’Œ `value = 0`ใ€‚ ## ไธ‹ไธ€ๆญฅๅปบ่ฎฎ -- [**็‡ƒๆฐ”่ดนไปฃไป˜ๆฆ‚ๅฟต**](/cn/explanation/gas-waiver)๏ผšๅœจๆ‚จ่‡ช่กŒ่ฟ่กŒไน‹ๅ‰๏ผŒไบ†่งฃๅ…ถๆœบๅˆถใ€‚ -- [**็‡ƒๆฐ”่ดนไปฃไป˜ๅ่ฎฎ**](/cn/reference/gas-waiver-api)๏ผšๅ‚่€ƒๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผŒไบ†่งฃๆ ‡่ฎฐ่ทฏ็”ฑใ€ๆŽˆๆƒๅ’Œๆ‰ง่กŒ่ฏญไน‰ใ€‚ -- [**ๅฏ็”จๅ…็‡ƒๆฐ”่ดนไบคๆ˜“**](/cn/how-to/integrate-gas-waiver)๏ผšไฝฟ็”จๆ‰˜็ฎก็š„ Waiver Server API๏ผŒ่€Œไธๆ˜ฏ่‡ช่กŒๆ‰˜็ฎกใ€‚ +- [**Gas ่ฑๅ…ๆฆ‚ๅฟต**](/cn/explanation/gas-waiver)๏ผšๅœจๆ‚จ่‡ชๅทฑ่ฟ่กŒไน‹ๅ‰ไบ†่งฃๅ…ถๆœบๅˆถใ€‚ +- [**Gas ่ฑๅ…ๅ่ฎฎ**](/cn/reference/gas-waiver-api)๏ผšๅ‚่€ƒๅฎŒๆ•ด็š„ๅ่ฎฎ่ง„่Œƒ๏ผŒไบ†่งฃๆ ‡่ฎฐ่ทฏ็”ฑใ€ๆŽˆๆƒๅ’Œๆ‰ง่กŒ่ฏญไน‰ใ€‚ +- [**ๅฏ็”จๅ… Gas ไบคๆ˜“**](/cn/how-to/integrate-gas-waiver)๏ผšไฝฟ็”จๆ‰˜็ฎก็š„่ฑๅ…ๆœๅŠกๅ™จ API ่€Œไธๆ˜ฏ่‡ชๆ‰˜็ฎกใ€‚ diff --git a/docs/pages/cn/reference/gas-waiver-api.mdx b/docs/pages/cn/reference/gas-waiver-api.mdx index 2e2d757..1a8ca3c 100644 --- a/docs/pages/cn/reference/gas-waiver-api.mdx +++ b/docs/pages/cn/reference/gas-waiver-api.mdx @@ -1,89 +1,89 @@ --- source_path: reference/gas-waiver-api.mdx -source_sha: 73af0a88040bca94925046ff388ccc018e9be11b -title: "็‡ƒๆฐ”่ดนๅ‡ๅ…ๅ่ฎฎ" -description: "็‡ƒๆฐ”่ดนๅ‡ๅ…็š„ๅ่ฎฎ็บง่ง„่Œƒ๏ผšไบคๆ˜“ๆ ผๅผใ€ๆ ‡่ฎฐ่ทฏ็”ฑใ€ๆฒป็†ๆŽงๅˆถๅ’Œๅ‡ๅ…ๆœๅŠกๅ™จ APIใ€‚" +source_sha: 341f351cae76b4a715d9d44be9ac3552dd059dd5 +title: "Gas ่ฑๅ…ๅ่ฎฎ" +description: "Gas ่ฑๅ…็š„ๅ่ฎฎ็บง่ง„่Œƒ๏ผšไบคๆ˜“ๆ ผๅผใ€ๆ ‡่ฎฐ่ทฏ็”ฑใ€ๆฒป็†ๆŽงๅˆถๅ’Œ่ฑๅ…ๆœๅŠกๅ™จ APIใ€‚" diataxis: "reference" --- -# ็‡ƒๆฐ”่ดนๅ‡ๅ…ๅ่ฎฎ +# Gas ่ฑๅ…ๅ่ฎฎ -ๆœฌๆ–‡ๆกฃ่ฏฆ็ป†่ฏดๆ˜Žไบ†็‡ƒๆฐ”่ดนๅ‡ๅ…ๆœบๅˆถ๏ผšไบคๆ˜“ๆ ผๅผใ€ๆ ‡่ฎฐ่ทฏ็”ฑใ€ๆฒป็†ๆŽงๅˆถๅ’Œๅ‡ๅ…ๆœๅŠกๅ™จ APIใ€‚ +ๆœฌๆ–‡ๆกฃ่ง„ๅฎšไบ† Gas ่ฑๅ…ๆœบๅˆถ๏ผšไบคๆ˜“ๆ ผๅผใ€ๆ ‡่ฎฐ่ทฏ็”ฑใ€ๆฒป็†ๆŽงๅˆถๅ’Œ่ฑๅ…ๆœๅŠกๅ™จ APIใ€‚ :::note -**ๆฆ‚ๅฟต๏ผš** ๆœ‰ๅ…ณ็‡ƒๆฐ”่ดนๅ‡ๅ…ๆ˜ฏไป€ไนˆไปฅๅŠๅฎƒๅญ˜ๅœจ็š„ๅŽŸๅ› ๏ผŒ่ฏทๅ‚้˜…[็‡ƒๆฐ”่ดนๅ‡ๅ…](/cn/explanation/gas-waiver)ใ€‚ๆœ‰ๅ…ณไธŽๆ‰˜็ฎก็š„ๅ‡ๅ…ๆœๅŠกๅ™จ้›†ๆˆ็š„ๆ“ไฝœๆŒ‡ๅ—๏ผŒ่ฏทๅ‚้˜…[ๅฏ็”จๅ…็‡ƒๆฐ”่ดนไบคๆ˜“](/cn/how-to/integrate-gas-waiver)ใ€‚ +**ๆฆ‚ๅฟต๏ผš** ๆœ‰ๅ…ณ Gas ่ฑๅ…ๆ˜ฏไป€ไนˆไปฅๅŠๅฎƒไธบไฝ•ๅญ˜ๅœจ๏ผŒ่ฏทๅ‚้˜…[Gas ่ฑๅ…](/cn/explanation/gas-waiver)ใ€‚ๆœ‰ๅ…ณไธŽๆ‰˜็ฎก่ฑๅ…ๆœๅŠกๅ™จ้›†ๆˆ็š„ๆ“ไฝœๆŒ‡ๅ—๏ผŒ่ฏทๅ‚้˜…[ๅฏ็”จๅ… Gas ไบคๆ˜“](/cn/how-to/integrate-gas-waiver)ใ€‚ ::: ## ๆ‘˜่ฆ -็‡ƒๆฐ”่ดนๅ‡ๅ…้€š่ฟ‡ๅ…่ฎธไธ€ๅฐ้ƒจๅˆ†็ปๆฒป็†ๆ‰นๅ‡†็š„ๅœฐๅ€๏ผˆโ€œๅ‡ๅ…ๆ–นโ€๏ผ‰ๆไบค `gasPrice = 0` ็š„ไบคๆ˜“๏ผŒไปŽ่€Œๅœจ Stable ไธŠๅฎž็Žฐๆ— ็‡ƒๆฐ”่ดน็š„ๆœ€็ปˆ็”จๆˆทไบคๆ˜“ใ€‚Stable ็›ฎๅ‰่ฟ่ฅ็€ไธ€ไธชๅ‡ๅ…ๆœๅŠก๏ผˆโ€œๅ‡ๅ…ๆœๅŠกๅ™จโ€๏ผ‰๏ผŒๆ‚จๅฏไปฅไธŽไน‹้›†ๆˆไปฅๆไพ›ๆ— ็‡ƒๆฐ”่ดน็š„็”จๆˆทไฝ“้ชŒ๏ผŒ่€Œๆ— ้œ€ๅฎž็Žฐๅ่ฎฎ็‰นๅฎš็š„ๅŒ…่ฃ…ๅ™จ้€ป่พ‘ใ€‚ +Gas ่ฑๅ…้€š่ฟ‡ๅ…่ฎธไธ€ๅฐ็ป„็ปๆฒป็†ๆ‰นๅ‡†็š„ๅœฐๅ€๏ผˆโ€œ่ฑๅ…่€…โ€๏ผ‰ๆไบค `gasPrice = 0` ็š„ไบคๆ˜“๏ผŒไปŽ่€Œๅœจ Stable ไธŠๅฎž็Žฐๅ… Gas ็š„็ปˆ็ซฏ็”จๆˆทไบคๆ˜“ใ€‚Stable ็›ฎๅ‰่ฟ่ฅไธ€ไธช่ฑๅ…ๆœๅŠก๏ผˆโ€œ่ฑๅ…ๆœๅŠกๅ™จโ€๏ผ‰๏ผŒๆ‚จๅฏไปฅไธŽไน‹้›†ๆˆไปฅๆไพ›ๅ… Gas UX๏ผŒ่€Œๆ— ้œ€ๅฎž็Žฐๅ่ฎฎ็‰นๅฎš็š„ๅŒ…่ฃ…ๅ™จ้€ป่พ‘ใ€‚ ## ่Œƒๅ›ด ๆœฌ่ง„่Œƒๆถต็›–๏ผš -- ๅ…็‡ƒๆฐ”่ดนไบคๆ˜“็š„ๅ่ฎฎ็บง่ง„ๅˆ™ +- ๅ… Gas ไบคๆ˜“็š„ๅ่ฎฎ็บง่ง„ๅˆ™ - ๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆœบๅˆถๅ’Œๆ ‡่ฎฐๅœฐๅ€ - ๆฒป็†ๆŽงๅˆถ็š„ๆŽˆๆƒๅ’Œๅ…่ฎธ็š„็›ฎๆ ‡ -- ็”จไบŽๆไบค็ญพๅ็”จๆˆทไบคๆ˜“็š„ๅ‡ๅ…ๆœๅŠกๅ™จๆŽฅๅฃ +- ็”จไบŽๆไบคๅทฒ็ญพๅ็”จๆˆทไบคๆ˜“็š„่ฑๅ…ๆœๅŠกๅ™จๆŽฅๅฃ ## ๅฎšไน‰ -- **ๅ‡ๅ…ๆ–น๏ผˆWaiver๏ผ‰**๏ผš้€š่ฟ‡้ชŒ่ฏ่€…ๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„ไปฅๅคชๅŠๅœฐๅ€๏ผŒ่ขซๆŽˆๆƒๆไบคๅ…็‡ƒๆฐ”่ดนไบคๆ˜“ใ€‚ -- **InnerTx**๏ผšๆœ€็ปˆ็”จๆˆท็ญพๅ็š„ไบคๆ˜“๏ผŒ`gasPrice = 0`ใ€‚ -- **WrapperTx**๏ผš็”ฑๅ‡ๅ…ๆ–น็ญพๅ็š„ไธ€็ฌ”ไบคๆ˜“๏ผŒๅฐ†็”จๆˆท็š„ `InnerTx` ไผ ่พ“ๅˆฐ้“พไธŠๅนถๆŽˆๆƒๆ‰ง่กŒใ€‚ -- **ๆ ‡่ฎฐๅœฐๅ€๏ผˆMarker address๏ผ‰**๏ผš็”จไบŽ่ฏ†ๅˆซๅ‡ๅ…ๅŒ…่ฃ…ๅ™จไบคๆ˜“็š„ๅ“จๅ…ตๅœฐๅ€๏ผš`0x000000000000000000000000000000000000f333`ใ€‚ -- **ๅ…่ฎธ็›ฎๆ ‡๏ผˆAllowedTarget๏ผ‰**๏ผš้™ๅˆถๅ‡ๅ…ๆ–นๅˆฐ็‰นๅฎšๅˆ็บฆๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จ็š„็ญ–็•ฅใ€‚ +- **่ฑๅ…่€…**๏ผš้€š่ฟ‡้ชŒ่ฏ่€…ๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„ไปฅๅคชๅŠๅœฐๅ€๏ผŒ่ขซๆŽˆๆƒๆไบคๅ… Gas ไบคๆ˜“ใ€‚ +- **InnerTx**๏ผš็ปˆ็ซฏ็”จๆˆท็ญพๅ็š„ `gasPrice = 0` ็š„ไบคๆ˜“ใ€‚ +- **WrapperTx**๏ผš็”ฑ่ฑๅ…่€…็ญพๅ๏ผŒๅฐ†็”จๆˆท็š„ `InnerTx` ไผ ่พ“ๅˆฐ้“พไธŠๅนถๆŽˆๆƒๆ‰ง่กŒ็š„ไบคๆ˜“ใ€‚ +- **ๆ ‡่ฎฐๅœฐๅ€**๏ผš็”จไบŽๆ ‡่ฏ†่ฑๅ…ๅŒ…่ฃ…ๅ™จไบคๆ˜“็š„ๅ“จๅ…ตๅœฐๅ€๏ผš`0x000000000000000000000000000000000000f333`ใ€‚ +- **AllowedTarget**๏ผšๅฐ†่ฑๅ…่€…้™ๅˆถไธบ็‰นๅฎšๅˆ็บฆๅœฐๅ€ๅ’Œๆ–นๆณ•้€‰ๆ‹ฉๅ™จ็š„็ญ–็•ฅใ€‚ ## ๆฆ‚่ฟฐ -็‡ƒๆฐ”่ดนๅ‡ๅ…ไฝฟ็”จๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆจกๅผ๏ผš +Gas ่ฑๅ…ไฝฟ็”จๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆจกๅผ๏ผš 1. ็”จๆˆท็”จ `gasPrice = 0` ็ญพ็ฝฒไธ€ไธช `InnerTx`ใ€‚ -2. ๅ‡ๅ…ๆ–นๅฐ† `InnerTx` ๅŒ…่ฃ…ๅˆฐ `WrapperTx` ไธญๅนถๅนฟๆ’ญใ€‚ -3. ้ชŒ่ฏ่€…ๆฃ€ๆต‹ๆ ‡่ฎฐไบคๆ˜“๏ผŒ้ชŒ่ฏๅ‡ๅ…ๆ–น็š„ๆŽˆๆƒๅ’Œ็ญ–็•ฅ็บฆๆŸ๏ผŒ็„ถๅŽๆ‰ง่กŒๅตŒๅ…ฅ็š„ `InnerTx`ใ€‚ +2. ่ฑๅ…่€…ๅฐ† `InnerTx` ๅŒ…่ฃ…ๅˆฐ `WrapperTx` ไธญๅนถๅนฟๆ’ญใ€‚ +3. ้ชŒ่ฏ่€…ๆฃ€ๆต‹ๆ ‡่ฎฐไบคๆ˜“๏ผŒ้ชŒ่ฏ่ฑๅ…่€…ๆŽˆๆƒๅ’Œ็ญ–็•ฅ็บฆๆŸ๏ผŒ็„ถๅŽๆ‰ง่กŒๅตŒๅ…ฅ็š„ `InnerTx`ใ€‚ -Stable ่ฟ่ฅ็€ไธ€ไธชๅ‡ๅ…ๆœๅŠก๏ผˆๅ‡ๅ…ๆœๅŠกๅ™จ๏ผ‰๏ผŒ่ฏฅๆœๅŠกๅœจ้“พไธŠๆณจๅ†ŒไธบๆŽˆๆƒๅ‡ๅ…ๆ–นใ€‚ๆ‚จๅฏไปฅ้€š่ฟ‡ๅ‡ๅ…ๆœๅŠกๅ™จ API ๆไบคๅทฒ็ญพๅ็š„ `InnerTx` ๆœ‰ๆ•ˆ่ดŸ่ฝฝใ€‚ +Stable ่ฟ่ฅไธ€ไธช่ฑๅ…ๆœๅŠก๏ผˆ่ฑๅ…ๆœๅŠกๅ™จ๏ผ‰๏ผŒ่ฏฅๆœๅŠกๅœจ้“พไธŠๆณจๅ†ŒไธบๆŽˆๆƒ่ฑๅ…่€…ใ€‚ๆ‚จไธŽ่ฑๅ…ๆœๅŠกๅ™จ API ้›†ๆˆไปฅๆไบคๅทฒ็ญพๅ็š„ `InnerTx` ๆœ‰ๆ•ˆ่ฝฝ่ทใ€‚ ## ๅ่ฎฎ่ง„่Œƒ ### ๆ ‡่ฎฐๅœฐๅ€่ทฏ็”ฑ -ๅฝ“ไธ”ไป…ๅฝ“ๅ‘็”Ÿไปฅไธ‹ๆƒ…ๅ†ตๆ—ถ๏ผŒไบคๆ˜“ๆ‰่ขซ่ง†ไธบๅ‡ๅ…ๅŒ…่ฃ…ๅ™จไบคๆ˜“๏ผš +ๅฝ“ไธ”ไป…ๅฝ“ๆปก่ถณไปฅไธ‹ๆกไปถๆ—ถ๏ผŒไบคๆ˜“ๆ‰่ขซ่ง†ไธบ่ฑๅ…ๅŒ…่ฃ…ๅ™จไบคๆ˜“๏ผš - `to == 0x000000000000000000000000000000000000f333`ใ€‚ -ๅ่ฎฎๅฐ†ไบคๆ˜“็š„ `data` ๅญ—ๆฎต่งฃ้‡Šไธบ็ผ–็ ็š„ๅ†…้ƒจไบคๆ˜“ๆœ‰ๆ•ˆ่ดŸ่ฝฝ๏ผŒๅนถไฝฟ็”จไธ‹้ข็š„ๅ‡ๅ…้ชŒ่ฏ่ง„ๅˆ™่ฟ›่กŒๅค„็†ใ€‚ +ๅ่ฎฎๅฐ†ไบคๆ˜“็š„ `data` ๅญ—ๆฎต่งฃ้‡Šไธบ็ผ–็ ็š„ๅ†…้ƒจไบคๆ˜“ๆœ‰ๆ•ˆ่ฝฝ่ท๏ผŒๅนถไฝฟ็”จไธ‹้ข็š„่ฑๅ…้ชŒ่ฏ่ง„ๅˆ™่ฟ›่กŒๅค„็†ใ€‚ ### ๆŽˆๆƒๅ’Œ็ญ–็•ฅๆฃ€ๆŸฅ ๅฏนไบŽๆฏไธชๅ€™้€‰ๅŒ…่ฃ…ๅ™จไบคๆ˜“๏ผŒ้ชŒ่ฏ่€…ๅฟ…้กปๅผบๅˆถๆ‰ง่กŒ๏ผš -1. **ๅ‡ๅ…ๆ–นๆŽˆๆƒ** - - `WrapperTx.from` ๅฟ…้กปๆ˜ฏ้€š่ฟ‡ๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„ๅ‡ๅ…ๅœฐๅ€ใ€‚ -2. **็‡ƒๆฐ”่ดนๅ‡ๅ…** +1. **่ฑๅ…่€…ๆŽˆๆƒ** + - `WrapperTx.from` ๅฟ…้กปๆ˜ฏ้€š่ฟ‡ๆฒป็†ๅœจ้“พไธŠๆณจๅ†Œ็š„่ฑๅ…่€…ๅœฐๅ€ใ€‚ +2. **Gas ่ฑๅ…** - `WrapperTx.gasPrice` ๅฟ…้กป็ญ‰ไบŽ `0`ใ€‚ - `InnerTx.gasPrice` ๅฟ…้กป็ญ‰ไบŽ `0`ใ€‚ -3. **็›ฎๆ ‡็™ฝๅๅ•** - - `InnerTx.to` ไปฅๅŠไปŽ `InnerTx.data` ไธญๆๅ–็š„ๆ–นๆณ•้€‰ๆ‹ฉๅ™จๅฟ…้กป็”ฑๅ‡ๅ…ๆ–น็š„ `AllowedTarget` ็ญ–็•ฅๅ…่ฎธใ€‚ +3. **็›ฎๆ ‡ๅ…่ฎธๅˆ—่กจ** + - `InnerTx.to` ไปฅๅŠไปŽ `InnerTx.data` ไธญๆๅ–็š„ๆ–นๆณ•้€‰ๆ‹ฉๅ™จๅฟ…้กป่ขซ่ฑๅ…่€…็š„ `AllowedTarget` ็ญ–็•ฅๅ…่ฎธใ€‚ 4. **ไปทๅ€ผ้™ๅˆถ** - `WrapperTx.value` ๅฟ…้กป็ญ‰ไบŽ `0`ใ€‚ -ๅฆ‚ๆžœไปปไฝ•ๆฃ€ๆŸฅๅคฑ่ดฅ๏ผŒ้ชŒ่ฏ่€…ๅฐ†ๆ‹’็ปๅŒ…่ฃ…ๅ™จไบคๆ˜“๏ผŒๅนถไธ”ไธๆ‰ง่กŒๅ†…้ƒจไบคๆ˜“ใ€‚ +ๅฆ‚ๆžœไปปไฝ•ๆฃ€ๆŸฅๅคฑ่ดฅ๏ผŒ้ชŒ่ฏ่€…ๅฐ†ๆ‹’็ปๅŒ…่ฃ…ๅ™จไบคๆ˜“ๅนถไธ”ไธๆ‰ง่กŒๅ†…้ƒจไบคๆ˜“ใ€‚ ### ๆ‰ง่กŒ่ฏญไน‰ ๅฆ‚ๆžœๆ‰€ๆœ‰ๆฃ€ๆŸฅ้ƒฝ้€š่ฟ‡๏ผš -1. ๅ่ฎฎไปฅ็”จๆˆท็š„่บซไปฝๆ‰ง่กŒ `InnerTx`๏ผŒไฟ็•™็”จๆˆท็š„ `from`ใ€`nonce` ๅ’Œ่ฐƒ็”จ่ฏญไน‰ใ€‚ -2. ็‡ƒๆฐ”่ดนๆ ธ็ฎ—็”ฑๅ‡ๅ…ๆœบๅˆถๅค„็†๏ผš็”จๆˆทไธๆ”ฏไป˜็‡ƒๆฐ”่ดน๏ผŒๅนถไธ”ๆ นๆฎ่ฏฅๅŠŸ่ƒฝ็š„ๅฎšไน‰๏ผŒๅ‡ๅ…ไบคๆ˜“ไฝฟ็”จ `gasPrice = 0`ใ€‚ +1. ๅ่ฎฎไปฅ็”จๆˆท่บซไปฝๆ‰ง่กŒ `InnerTx`๏ผŒไฟ็•™็”จๆˆท็š„ `from`ใ€`nonce` ๅ’Œ่ฐƒ็”จ่ฏญไน‰ใ€‚ +2. Gas ๆ ธ็ฎ—็”ฑ่ฑๅ…ๆœบๅˆถๅค„็†๏ผš็”จๆˆทไธๆ”ฏไป˜ Gas๏ผŒ่ฑๅ…ไบคๆ˜“ๆ นๆฎๅŠŸ่ƒฝๅฎšไน‰ไฝฟ็”จ `gasPrice = 0`ใ€‚ 3. ๅŒ…่ฃ…ๅ™จไบคๆ˜“ๅฟ…้กปๆไพ›่ถณๅคŸ็š„ `gasLimit` ๆฅ่ฆ†็›– `InnerTx` ็š„ๆ‰ง่กŒ๏ผˆๅŒ…ๆ‹ฌ่งฃๅŒ…ๅ’Œ้ชŒ่ฏ็š„ๅผ€้”€๏ผ‰ใ€‚ ## ไบคๆ˜“ๆ ผๅผ ### WrapperTx -ๅŒ…่ฃ…ๅ™จไบคๆ˜“็”ฑๅ‡ๅ…ๆ–น็ญพๅๅนถๅ‘้€ๅˆฐๆ ‡่ฎฐๅœฐๅ€ใ€‚ +ๅŒ…่ฃ…ๅ™จไบคๆ˜“็”ฑ่ฑๅ…่€…็ญพๅๅนถๅ‘้€ๅˆฐๆ ‡่ฎฐๅœฐๅ€ใ€‚ ```javascript WrapperTx { @@ -99,7 +99,7 @@ WrapperTx { ### InnerTx -ๅ†…้ƒจไบคๆ˜“็”ฑๆœ€็ปˆ็”จๆˆท็ญพๅใ€‚ +ๅ†…้ƒจไบคๆ˜“็”ฑ็ปˆ็ซฏ็”จๆˆท็ญพๅใ€‚ ```javascript InnerTx { @@ -115,41 +115,45 @@ InnerTx { ## ๆฒป็†ๆŽงๅˆถ็š„่ฎฟ้—ฎ -ๅ‡ๅ…ๆŽˆๆƒ็”ฑ้ชŒ่ฏ่€…ๆฒป็†ๅœจ้“พไธŠๆŽงๅˆถใ€‚ +่ฑๅ…่€…ๆŽˆๆƒ็”ฑ้“พไธŠ้ชŒ่ฏ่€…ๆฒป็†ๆŽงๅˆถใ€‚ ๆฒป็†ๆŽงๅˆถๆไพ›๏ผš -- ๅฏนๅ‡ๅ…ๅœฐๅ€็š„ๅฏๅฎกๆŸฅๆŽˆๆƒ -- ๅ‡ๅ…ๆณจๅ†Œๅ’Œๆ›ดๆ–ฐ็š„้“พไธŠ้€ๆ˜Žๅบฆ +- ่ฑๅ…่€…ๅœฐๅ€็š„ๅฏๅฎกๆŸฅๆŽˆๆƒ +- ่ฑๅ…่€…ๆณจๅ†Œๅ’Œๆ›ดๆ–ฐ็š„้“พไธŠ้€ๆ˜Žๅบฆ - ๆ’ค้”€่ƒฝๅŠ› -- ้€š่ฟ‡ `AllowedTarget` ่ฟ›่กŒ็š„ๆฏไธชๅ‡ๅ…ๆ–น็š„่Œƒๅ›ด็•Œๅฎš +- ้€š่ฟ‡ `AllowedTarget` ่ฟ›่กŒ็š„ๆฏไธช่ฑๅ…่€…่Œƒๅ›ด้™ๅˆถ ## ๅฎ‰ๅ…จๆจกๅž‹ -### ๆœ€็ปˆ็”จๆˆท็ญพๅๅฎŒๆ•ดๆ€ง +### ็ปˆ็ซฏ็”จๆˆท็ญพๅๅฎŒๆ•ดๆ€ง -็”จๆˆท็ญพ็ฝฒ `InnerTx`ใ€‚ๅ‡ๅ…ๆ–นๆ— ๆณ•ไฟฎๆ”นๅ†…้ƒจไบคๆ˜“ๆœ‰ๆ•ˆ่ดŸ่ฝฝ่€Œไฝฟๅ…ถ็ญพๅๅคฑๆ•ˆใ€‚ๆ‚จไป็„ถๅฟ…้กป็กฎไฟ็”จๆˆทไป…็ญพ็ฝฒ้ข„ๆœŸ็š„ไบคๆ˜“ๆœ‰ๆ•ˆ่ดŸ่ฝฝใ€‚ +็”จๆˆท็ญพ็ฝฒ `InnerTx`ใ€‚่ฑๅ…่€…ๆ— ๆณ•ไฟฎๆ”นๅ†…้ƒจไบคๆ˜“ๆœ‰ๆ•ˆ่ฝฝ่ท่€Œไธไฝฟ็ญพๅๅคฑๆ•ˆใ€‚ๆ‚จไป็„ถๅฟ…้กป็กฎไฟ็”จๆˆทๅช็ญพ็ฝฒ้ข„ๆœŸ็š„ไบคๆ˜“ๆœ‰ๆ•ˆ่ฝฝ่ทใ€‚ ### ไฟกไปป่พน็•Œ -ๅฆ‚ๆžœๅˆไฝœไผ™ไผด้€š่ฟ‡ๅ‡ๅ…ๆœๅŠกๅ™จ่ทฏ็”ฑๆไบคๅ†…ๅฎน๏ผŒ็‡ƒๆฐ”่ดนๅ‡ๅ…ไผšๅผ•ๅ…ฅๆœๅŠกไพ่ต–๏ผš +ๅฆ‚ๆžœๅˆไฝœไผ™ไผด้€š่ฟ‡่ฑๅ…ๆœๅŠกๅ™จ่ทฏ็”ฑๆไบค๏ผŒGas ่ฑๅ…ไผšๅผ•ๅ…ฅๆœๅŠกไพ่ต–ๆ€ง๏ผš -- ๆœๅŠก็š„ๅฏ็”จๆ€งๅฝฑๅ“ๆไบคๆ— ็‡ƒๆฐ”่ดนไบคๆ˜“็š„่ƒฝๅŠ›ใ€‚ -- ๆŽˆๆƒไฟ็•™ๅœจ้“พไธŠ๏ผ›ๅชๆœ‰ๆณจๅ†Œ็š„ๅ‡ๅ…ๅœฐๅ€ๆ‰่ƒฝ็”Ÿๆˆๆœ‰ๆ•ˆ็š„ๅŒ…่ฃ…ๅ™จๆไบคใ€‚ +- ๆœๅŠก็š„ๅฏ็”จๆ€งๅฝฑๅ“ๆไบคๅ… Gas ไบคๆ˜“็š„่ƒฝๅŠ›ใ€‚ +- ๆŽˆๆƒไป็„ถๅœจ้“พไธŠ๏ผ›ๅชๆœ‰ๆณจๅ†Œ็š„่ฑๅ…่€…ๅœฐๅ€ๆ‰่ƒฝไบง็”Ÿๆœ‰ๆ•ˆ็š„ๅŒ…่ฃ…ๅ™จๆไบคใ€‚ ## ้›†ๆˆ -ๆ‚จๅฏไปฅ้€š่ฟ‡ไปฅไธ‹ๆ–นๅผ้›†ๆˆ๏ผš +ไธ‰็ง่ทฏๅพ„ไผšไบง็”Ÿ็›ธๅŒ็š„้“พไธŠ็ป“ๆžœ๏ผŒไธๅŒไน‹ๅค„ๅœจไบŽ่ฐๆŒๆœ‰่ฑๅ…ๅฏ†้’ฅใ€‚่ฏทๅ‚้˜…[้€‰ๆ‹ฉ้›†ๆˆ่ทฏๅพ„](/cn/explanation/gas-waiver#choosing-an-integration-path)ใ€‚ -1. ไปŽ็”จๆˆทๆ”ถ้›†็ญพๅ็š„ `InnerTx`๏ผˆ`gasPrice = 0`๏ผ‰ใ€‚ -2. ๅฐ†็ญพๅ็š„ๅ†…้ƒจไบคๆ˜“ๆไบค็ป™ๅ‡ๅ…ๆœๅŠกๅ™จ APIใ€‚ -3. ๅค„็†ๆตๅผ็ป“ๆžœๅนถๅฐ†ไบคๆ˜“ๅ“ˆๅธŒๆ˜พ็คบ็ป™ๆœ€็ปˆ็”จๆˆทใ€‚ +้’ˆๅฏนๆ‰˜็ฎก่ฑๅ…ๆœๅŠกๅ™จ๏ผš -## ๅ‡ๅ…ๆœๅŠกๅ™จ +1. ไปŽ็”จๆˆท้‚ฃ้‡Œๆ”ถ้›†ๅทฒ็ญพๅ็š„ `InnerTx` (`gasPrice = 0`)ใ€‚ +2. ๅฐ†ๅทฒ็ญพๅ็š„ๅ†…้ƒจไบคๆ˜“ๆไบค็ป™่ฑๅ…ๆœๅŠกๅ™จ APIใ€‚ +3. ๅค„็†ๆตๅผ็ป“ๆžœๅนถๅฐ†ไบคๆ˜“ๅ“ˆๅธŒๆ˜พ็คบ็ป™็ปˆ็ซฏ็”จๆˆทใ€‚ + +ไปŽๆ‚จ่‡ชๅทฑๆณจๅ†Œ็š„่ฑๅ…ๅœฐๅ€๏ผŒ`@stablechain/enterprise` ๅœจไธ€ๆฌก่ฐƒ็”จไธญๆž„ๅปบใ€็ญพๅๅ’Œๅนฟๆ’ญ `WrapperTx`ใ€‚่ฏทๅ‚้˜…[ไฝฟ็”จ Gas ่ฑๅ…่ฟ›่กŒไธญ็ปง](/cn/how-to/relay-with-gas-waiver)๏ผŒๆˆ–[่‡ชๆ‰˜็ฎก Gas ่ฑๅ…](/cn/how-to/self-hosted-gas-waiver)ไปฅ็›ดๆŽฅๆž„ๅปบๅŒ…่ฃ…ๅ™จใ€‚ + +## ่ฑๅ…ๆœๅŠกๅ™จ ### ๆฆ‚่ฟฐ -ๅ‡ๅ…ๆœๅŠกๅ™จๅฐ†็ญพๅ็š„็”จๆˆท `InnerTx` ๆœ‰ๆ•ˆ่ดŸ่ฝฝๅŒ…่ฃ…ๅนถๅนฟๆ’ญไธบๅ‡ๅ…ๆ–นๆŽˆๆƒ็š„ๅŒ…่ฃ…ๅ™จไบคๆ˜“ใ€‚ๆ‚จๆ— ้œ€ๆž„ๅปบๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆˆ–ๆ“ไฝœๅ‡ๅ…ๅœฐๅ€ใ€‚ +่ฑๅ…ๆœๅŠกๅ™จๅฐ†ๅทฒ็ญพๅ็š„็”จๆˆท `InnerTx` ๆœ‰ๆ•ˆ่ฝฝ่ทๅŒ…่ฃ…ๅนถๅนฟๆ’ญไธบ่ฑๅ…่€…ๆŽˆๆƒ็š„ๅŒ…่ฃ…ๅ™จไบคๆ˜“ใ€‚ๆ‚จๆ— ้œ€ๆž„ๅปบๅŒ…่ฃ…ๅ™จไบคๆ˜“ๆˆ–ๆ“ไฝœ่ฑๅ…ๅœฐๅ€ใ€‚ ### ็ซฏ็‚นๅ’ŒๅŸบๆœฌ URL @@ -158,9 +162,9 @@ InnerTx { - ไธป็ฝ‘๏ผšๅพ…ๅฎš - ๆต‹่ฏ•็ฝ‘๏ผš`https://waiver.testnet.stable.xyz` -### ่บซไปฝ้ชŒ่ฏ +### ่ฎค่ฏ -้™คๅฅๅบทๆฃ€ๆŸฅๅค–็š„ๆ‰€ๆœ‰็ซฏ็‚น้ƒฝ้œ€่ฆ bearer token ่บซไปฝ้ชŒ่ฏ๏ผš +้™คๅฅๅบทๆฃ€ๆŸฅๅค–๏ผŒๆ‰€ๆœ‰็ซฏ็‚น้ƒฝ้œ€่ฆๆŒๆœ‰่€…ไปค็‰Œ่ฎค่ฏ๏ผš ```text Authorization: Bearer @@ -172,15 +176,15 @@ Authorization: Bearer ๅฅๅบทๆฃ€ๆŸฅ็ซฏ็‚นใ€‚ -่บซไปฝ้ชŒ่ฏ๏ผšๆ— ใ€‚ +่ฎค่ฏ๏ผšๆ— ใ€‚ #### POST `/v1/submit` -ๆไบคไธ€ๆ‰น็ญพๅ็š„ๅ†…้ƒจไบคๆ˜“ใ€‚ +ๆไบคไธ€ๆ‰นๅทฒ็ญพๅ็š„ๅ†…้ƒจไบคๆ˜“ใ€‚ -่บซไปฝ้ชŒ่ฏ๏ผšๅฟ…้œ€๏ผˆ`Bearer`๏ผ‰ใ€‚ +่ฎค่ฏ๏ผš้œ€่ฆ (`Bearer`)ใ€‚ -่ฏทๆฑ‚ไฝ“๏ผš +่ฏทๆฑ‚ๆญฃๆ–‡๏ผš ```json { @@ -188,7 +192,7 @@ Authorization: Bearer } ``` -ๅ“ๅบ”ไปฅ NDJSON๏ผˆๆข่กŒ็ฌฆๅˆ†้š”็š„ JSON๏ผ‰ๆตๅผไผ ่พ“ใ€‚ๆฏ่กŒๅฏนๅบ”ไบŽไธ€ไธชๅทฒๆไบค็š„ไบคๆ˜“็ดขๅผ•ใ€‚ +ๅ“ๅบ”ไปฅ NDJSON๏ผˆๆข่กŒ็ฌฆๅˆ†้š”็š„ JSON๏ผ‰ๆตๅผไผ ่พ“ใ€‚ๆฏ่กŒๅฏนๅบ”ไธ€ไธชๆไบค็š„ไบคๆ˜“็ดขๅผ•ใ€‚ ็คบไพ‹๏ผš @@ -201,7 +205,7 @@ Authorization: Bearer ็”จไบŽๆตๅผๆไบค็š„ WebSocket ๆŽฅๅฃใ€‚ -่บซไปฝ้ชŒ่ฏ๏ผšๅฟ…้œ€๏ผˆ`Bearer`๏ผ‰ใ€‚ +่ฎค่ฏ๏ผš้œ€่ฆ (`Bearer`)ใ€‚ ### ้›†ๆˆ็คบไพ‹ @@ -250,7 +254,7 @@ async function createInnerTx(userWallet, contractAddress, callData, nonce) { to: contractAddress, data: callData, value: value, - gasPrice: 0, // ๅ‡ๅ…ๅฟ…้กปไธบ 0 + gasPrice: 0, // ่ฑๅ…ๅฟ…้กปไธบ 0 gasLimit: 100000, nonce: nonce, chainId: 2201, // ไธป็ฝ‘ไธบ 988๏ผŒๆต‹่ฏ•็ฝ‘ไธบ 2201 @@ -263,16 +267,17 @@ async function createInnerTx(userWallet, contractAddress, callData, nonce) { ### ้”™่ฏฏไปฃ็  - `PARSE_ERROR`๏ผš่งฃๆžไบคๆ˜“ๅคฑ่ดฅ -- `INVALID_REQUEST`๏ผš่ฏทๆฑ‚ไฝ“ๆ ผๅผ้”™่ฏฏ -- `BATCH_SIZE_EXCEEDED`๏ผšๆ‰น้‡ๅคงๅฐ่ถ…่ฟ‡ๅ…่ฎธ็š„ๆœ€ๅคงๅ€ผ +- `INVALID_REQUEST`๏ผš่ฏทๆฑ‚ๆญฃๆ–‡ๆ ผๅผ้”™่ฏฏ +- `BATCH_SIZE_EXCEEDED`๏ผšๆ‰นๅค„็†ๅคงๅฐ่ถ…่ฟ‡ๅ…่ฎธ็š„ๆœ€ๅคงๅ€ผ - `VALIDATION_FAILED`๏ผšไบคๆ˜“้ชŒ่ฏๅคฑ่ดฅ - `BROADCAST_FAILED`๏ผšๅนฟๆ’ญๅˆฐ้“พๅคฑ่ดฅ -- `RATE_LIMITED`๏ผš้€Ÿ็އ้™ๅˆถ่ถ…ๅ‡บ +- `RATE_LIMITED`๏ผš้€Ÿ็އ้™ๅˆถๅทฒ่ถ…ๅ‡บ - `QUEUE_FULL`๏ผšๆœๅŠกๅ™จ้˜Ÿๅˆ—ๅทฒๆปก - `TIMEOUT`๏ผš่ฏทๆฑ‚่ถ…ๆ—ถ -## ไธ‹ไธ€ๆญฅๆŽจ่ +## ไธ‹ไธ€ๆญฅๅปบ่ฎฎ -- [**้›ถ็‡ƒๆฐ”่ดนไบคๆ˜“**](/cn/how-to/zero-gas-transactions)๏ผšๆผ”็คบไธบไธป็š„ๆผ”็ปƒ๏ผŒๅŒ…ๅซๆ˜พ็คบ้›ถ็‡ƒๆฐ”่ดน็š„ๆ”ถๆฎใ€‚ -- [**ๅฏ็”จๅ…็‡ƒๆฐ”่ดนไบคๆ˜“**](/cn/how-to/integrate-gas-waiver)๏ผšๅฎŒๆ•ด็š„ๆ‰˜็ฎก API ้›†ๆˆๆŒ‡ๅ—๏ผŒๅŒ…ๅซๆ‰น้‡ๆไบคๅ’Œ้”™่ฏฏๅค„็†ใ€‚ -- [**่‡ชๆ‰˜็ฎก็‡ƒๆฐ”่ดนๅ‡ๅ…**](/cn/how-to/self-hosted-gas-waiver)๏ผšๆ— ้œ€ๆ‰˜็ฎก API๏ผŒ่ฟ่กŒๆ‚จ่‡ชๅทฑ็š„็‡ƒๆฐ”่ดนๅ‡ๅ…ๅŸบ็ก€่ฎพๆ–ฝใ€‚ +- [**้›ถ Gas ไบคๆ˜“**](/cn/how-to/zero-gas-transactions)๏ผšไปฅๆผ”็คบไธบไธญๅฟƒ็š„ๆผ”็ปƒ๏ผŒๆ˜พ็คบ้›ถ Gas ่ดน็š„ๆ”ถๆฎใ€‚ +- [**ๅฏ็”จๅ… Gas ไบคๆ˜“**](/cn/how-to/integrate-gas-waiver)๏ผšๅฎŒๆ•ด็š„ๆ‰˜็ฎก API ้›†ๆˆๆŒ‡ๅ—๏ผŒๅŒ…ๆ‹ฌๆ‰น้‡ๆไบคๅ’Œ้”™่ฏฏๅค„็†ใ€‚ +- [**่‡ชๆ‰˜็ฎก Gas ่ฑๅ…**](/cn/how-to/self-hosted-gas-waiver)๏ผš่ฟ่กŒๆ‚จ่‡ชๅทฑ็š„่ฑๅ…ๅŸบ็ก€่ฎพๆ–ฝ๏ผŒๆ— ้œ€ๆ‰˜็ฎก APIใ€‚ +- [**ไฝฟ็”จ Gas ่ฑๅ…่ฟ›่กŒไธญ็ปง**](/cn/how-to/relay-with-gas-waiver)๏ผšไฝฟ็”จ็ฑปๅž‹ๅŒ–็š„ Enterprise SDK ๅฎขๆˆท็ซฏไปŽๆ‚จ่‡ชๅทฑ็š„่ฑๅ…่ตžๅŠฉ Gasใ€‚ diff --git a/docs/pages/cn/reference/indexers.mdx b/docs/pages/cn/reference/indexers.mdx index 5e3cb91..452b7c9 100644 --- a/docs/pages/cn/reference/indexers.mdx +++ b/docs/pages/cn/reference/indexers.mdx @@ -1,6 +1,6 @@ --- source_path: reference/indexers.mdx -source_sha: 208d3664597b9263a10478a7fb3ad16384dffb53 +source_sha: 6cc9367a3209b641df9f4a6d11c8de08332c7ce5 title: "็ดขๅผ•ๅ™จ" description: "ๆŸฅๆ‰พๆ”ฏๆŒ Stable ็š„็ดขๅผ•ใ€ๅˆ†ๆžใ€ๅˆ่ง„ๅ’Œ่ฐƒๆŸฅๆไพ›ๅ•†ใ€‚" diataxis: "reference" @@ -8,25 +8,26 @@ diataxis: "reference" # ็ดขๅผ•ๅ™จ -็ดขๅผ•ๅ™จใ€ๅˆ†ๆžๅนณๅฐๅ’ŒๅŒบๅ—้“พๆƒ…ๆŠฅๆไพ›ๅ•†ๅธฎๅŠฉๆ‚จๆŸฅ่ฏข้“พไธŠๆ•ฐๆฎใ€่กก้‡ๆดปๅŠจใ€็›‘ๆŽงไบคๆ˜“้ฃŽ้™ฉ๏ผŒๅนถ่ฐƒๆŸฅ Stable ไธŠ็š„่ต„้‡‘ๆตใ€‚Stable ๅ…ผๅฎน EVM๏ผŒๅ› ๆญคๆ ‡ๅ‡†็š„ไปฅๅคชๅŠ็ดขๅผ•ๅทฅๅ…ทๅฏไปฅๆ— ็ผๅทฅไฝœใ€‚ +็ดขๅผ•ๅ™จใ€ๅˆ†ๆžๅนณๅฐๅ’ŒๅŒบๅ—้“พๆƒ…ๆŠฅๆไพ›ๅ•†ๅฏๅธฎๅŠฉๆ‚จๅœจ Stable ไธŠๆŸฅ่ฏข้“พไธŠๆ•ฐๆฎใ€่กก้‡ๆดปๅŠจใ€็›‘ๆŽงไบคๆ˜“้ฃŽ้™ฉๅนถ่ฐƒๆŸฅ่ต„้‡‘ๆตๅ‘ใ€‚Stable ๅ…ผๅฎน EVM๏ผŒๅ› ๆญคๆ ‡ๅ‡†็š„ไปฅๅคชๅŠ็ดขๅผ•ๅทฅๅ…ทๆ— ้œ€ไฟฎๆ”นๅณๅฏไฝฟ็”จใ€‚ -ๆœฌ้กต้ขๅˆ—ๅ‡บไบ†ๅฏ็”จไบŽ Stable ็š„็ดขๅผ•ใ€ๅˆ†ๆžใ€ๅˆ่ง„ๆ€งๅŠ่ฐƒๆŸฅ็š„ๆไพ›ๅ•†ใ€‚ +ๆœฌ้กต้ขๅˆ—ๅ‡บไบ†ๅฏ็”จไบŽ Stable ไธŠ็š„็ดขๅผ•ใ€ๅˆ†ๆžใ€ๅˆ่ง„ๅ’Œ่ฐƒๆŸฅ็š„ๆไพ›ๅ•†ใ€‚ ## ๆฆ‚่งˆ่กจ -| **ๆไพ›ๅ•†** | **็ฑปๅˆซ** | **ๆ–‡ๆกฃ/ๅ…ฅ้—จ** | **ๅค‡ๆณจ** | +| **ๆไพ›ๅ•†** | **็ฑปๅˆซ** | **ๆ–‡ๆกฃ / ๅผ€ๅง‹ไฝฟ็”จ** | **ๅค‡ๆณจ** | | :-------------------------------------------------------------------------- | :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------- | | [**Stablescan**](https://stablescan.xyz/) | ๅŒบๅ—้“พๆต่งˆๅ™จ | [https://docs.etherscan.io/introduction](https://docs.etherscan.io/introduction) | ๅŒบๅ—้“พๆต่งˆๅ™จ๏ผ›ไบคๆ˜“ใ€ๅŒบๅ—ๅ’Œๅˆ็บฆๅฏ่งๆ€งใ€‚ | | [**Envio**](https://envio.dev/?utm_source=stable&utm_medium=partner-docs) | ็ดขๅผ•ๅ™จ | [https://docs.envio.dev/](https://docs.envio.dev/) | ้€š่ฟ‡ๅ•ไธช GraphQL API ๆไพ›ๅฎžๆ—ถๅ’Œๅކๅฒ้“พไธŠๆ•ฐๆฎใ€‚ | -| [**The Graph**](https://thegraph.com/explorer/participants/indexers) | ็ดขๅผ•ๅ™จ | [https://thegraph.com/docs/en/developing/creating-a-subgraph/](https://thegraph.com/docs/en/developing/creating-a-subgraph/) | ไฝฟ็”จ GraphQL ๆž„ๅปบใ€้ƒจ็ฝฒๅ’ŒๆŸฅ่ฏข subgraphใ€‚ | +| [**The Graph**](https://thegraph.com/explorer/participants/indexers) | ็ดขๅผ•ๅ™จ | [https://thegraph.com/docs/en/developing/creating-a-subgraph/](https://thegraph.com/docs/en/developing/creating-a-subgraph/) | ไฝฟ็”จ GraphQL ๆž„ๅปบใ€้ƒจ็ฝฒๅ’ŒๆŸฅ่ฏขๅญๅ›พใ€‚ | | [**Goldsky**](https://goldsky.com/) | ็ดขๅผ•ๅ™จ | [https://docs.goldsky.com/introduction](https://docs.goldsky.com/introduction) | ้ซ˜ๆ€ง่ƒฝ็ดขๅผ•ๅ’Œๅฎžๆ—ถๆ•ฐๆฎๆตใ€‚ | -| [**Ormi Labs**](https://ormilabs.com/) | ็ดขๅผ•ๅ™จ | [https://docs.ormilabs.com/subgraphs/quickstart](https://docs.ormilabs.com/subgraphs/quickstart) | ๅ…ทๆœ‰ๅฎžๆ—ถๆ•ฐๆฎ่ƒฝๅŠ›็š„ๆ–ฐไธ€ไปฃ subgraph ็ดขๅผ•ๅ™จใ€‚ | -| [**Allium**](https://www.allium.so/) | ๅˆ†ๆž/ๆ•ฐๆฎๅนณๅฐ | [https://docs.allium.so/](https://docs.allium.so/) | ่ง„่ŒƒๅŒ–็š„ๅŒบๅ—้“พๆ•ฐๆฎ้›†ๅ’Œๅˆ†ๆžๅทฅๅ…ทใ€‚ | -| [**CoinMarketCap**](https://coinmarketcap.com/api/) | ๅธ‚ๅœบๆ•ฐๆฎ่šๅˆๅ™จ | [https://coinmarketcap.com/api/documentation/v1/](https://coinmarketcap.com/api/documentation/v1/) | ๅธ‚ๅœบไปทๆ ผใ€ๅˆ—่กจๅ’Œ่ฟฝ่ธชๅทฅๅ…ทใ€‚ | -| [**CoinGecko**](https://www.coingecko.com/en/api) | ๅธ‚ๅœบๆ•ฐๆฎ่šๅˆๅ™จ | [https://docs.coingecko.com/](https://docs.coingecko.com/) | ๅธฆๆœ‰ๅผ€ๅ‘่€… API ็š„็‹ฌ็ซ‹ๅธ‚ๅœบๆ•ฐๆฎใ€‚ | -| [**Dexscreener**](https://docs.dexscreener.com/) | DEX ๅˆ†ๆž | [https://docs.dexscreener.com/](https://docs.dexscreener.com/) | ๅฎžๆ—ถ DEX ๅ›พ่กจใ€ๆตๅŠจๆ€งๅˆ†ๆžๅ’Œไปช่กจ็›˜ใ€‚ | -| [**DeBank**](https://debank.com/) | ๆŠ•่ต„็ป„ๅˆ/้’ฑๅŒ…ๅˆ†ๆž | [https://cloud.debank.com/](https://cloud.debank.com/) | EVM ้’ฑๅŒ…่ฟฝ่ธชใ€ไบคๆ˜“ๅ’ŒๆŠ•่ต„็ป„ๅˆๆดžๅฏŸใ€‚ | -| [**Chainalysis**](https://www.chainalysis.com/) | ๅˆ่ง„/่ฐƒๆŸฅ | [https://www.chainalysis.com/request-a-demo/](https://www.chainalysis.com/request-a-demo/) | ้€‚็”จไบŽ Stable ไปค็‰Œ็š„ KYT ็›‘ๆŽงใ€ๅฎžไฝ“็ญ›้€‰ๅ’Œ Reactor ่ฐƒๆŸฅใ€‚ | +| [**Ormi Labs**](https://ormilabs.com/) | ็ดขๅผ•ๅ™จ | [https://docs.ormilabs.com/subgraphs/quickstart](https://docs.ormilabs.com/subgraphs/quickstart) | ๅ…ทๆœ‰ๅฎžๆ—ถๆ•ฐๆฎ่ƒฝๅŠ›็š„ไธ‹ไธ€ไปฃๅญๅ›พ็ดขๅผ•ๅ™จใ€‚ | +| [**SQD**](https://sqd.dev/chains/stable/) | ็ดขๅผ•ๅ™จ | [https://docs.sqd.dev/](https://docs.sqd.dev/) | ่งฃ็ ็š„ๅކๅฒๅ’Œๅฎžๆ—ถๆต๏ผ›Stable ๆ•ฐๆฎ้›†ๆŒ‰้œ€ๆไพ›ใ€‚ | +| [**Allium**](https://www.allium.so/) | ๅˆ†ๆž / ๆ•ฐๆฎๅนณๅฐ | [https://docs.allium.so/](https://docs.allium.so/) | ๆ ‡ๅ‡†ๅŒ–็š„ๅŒบๅ—้“พๆ•ฐๆฎ้›†ๅ’Œๅˆ†ๆžๅทฅๅ…ทใ€‚ | +| [**CoinMarketCap**](https://coinmarketcap.com/api/) | ๅธ‚ๅœบๆ•ฐๆฎ่šๅˆๅ™จ | [https://coinmarketcap.com/api/documentation/v1/](https://coinmarketcap.com/api/documentation/v1/) | ๅธ‚ๅœบไปทๆ ผใ€ๅˆ—่กจๅ’Œ่ทŸ่ธชๅทฅๅ…ทใ€‚ | +| [**CoinGecko**](https://www.coingecko.com/en/api) | ๅธ‚ๅœบๆ•ฐๆฎ่šๅˆๅ™จ | [https://docs.coingecko.com/](https://docs.coingecko.com/) | ๅ…ทๆœ‰ๅผ€ๅ‘่€… API ็š„็‹ฌ็ซ‹ๅธ‚ๅœบๆ•ฐๆฎใ€‚ | +| [**Dexscreener**](https://docs.dexscreener.com/) | DEX ๅˆ†ๆž | [https://docs.dexscreener.com/](https://docs.dexscreener.com/) | ๅฎžๆ—ถ DEX ๅ›พ่กจใ€ๆตๅŠจๆ€งๅˆ†ๆžๅ’Œไปช่กจๆฟใ€‚ | +| [**DeBank**](https://debank.com/) | ๆŠ•่ต„็ป„ๅˆ / ้’ฑๅŒ…ๅˆ†ๆž | [https://cloud.debank.com/](https://cloud.debank.com/) | EVM ้’ฑๅŒ…่ทŸ่ธชใ€ไบคๆ˜“ๅ’ŒๆŠ•่ต„็ป„ๅˆๆดžๅฏŸใ€‚ | +| [**Chainalysis**](https://www.chainalysis.com/) | ๅˆ่ง„ / ่ฐƒๆŸฅ | [https://www.chainalysis.com/request-a-demo/](https://www.chainalysis.com/request-a-demo/) | KYT ็›‘ๆŽงใ€ๅฎžไฝ“็ญ›้€‰ๅ’Œ้’ˆๅฏน Stable ไปฃๅธ็š„ Reactor ่ฐƒๆŸฅใ€‚ | ## 1. ็ดขๅผ•ๅ™จ @@ -34,17 +35,17 @@ diataxis: "reference" ### Envio -Envio ๆ˜ฏๅŒบๅ—้“พๅบ”็”จ็จ‹ๅบ็š„ๆ•ฐๆฎๅฑ‚ใ€‚ๅฎƒ้€š่ฟ‡ๅ•ไธช GraphQL API ๆไพ›ๅฎžๆ—ถๅ’Œๅކๅฒ้“พไธŠๆ•ฐๆฎ๏ผŒๅ…ทๆœ‰ๅŽŸๅง‹้ซ˜้€Ÿ่ฎฟ้—ฎๅ’Œ Envio Cloud ไธŠ็š„ๆ‰˜็ฎกๆœๅŠกใ€‚ +Envio ๆ˜ฏๅŒบๅ—้“พๅบ”็”จ็จ‹ๅบ็š„ๆ•ฐๆฎๅฑ‚ใ€‚ๅฎƒ้€š่ฟ‡ๅ•ไธช GraphQL API ๆไพ›ๅฎžๆ—ถๅ’Œๅކๅฒ้“พไธŠๆ•ฐๆฎ๏ผŒๅ…ทๆœ‰ๅŽŸๅง‹้ซ˜้€Ÿ่ฎฟ้—ฎๅ’Œๅœจ Envio Cloud ไธŠๆ‰˜็ฎกใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** - ๅฎžๆ—ถๅ’Œๅކๅฒ้“พไธŠๆ•ฐๆฎ -- ๅ…ทๆœ‰ๅŽŸๅง‹้ซ˜้€Ÿ่ฎฟ้—ฎ็š„ๅ•ไธช GraphQL API -- ๅœจ Envio Cloud ไธŠๆ‰˜็ฎก +- ๅ…ทๆœ‰ๅŽŸๅง‹้ซ˜้€Ÿ่ฎฟ้—ฎๆƒ้™็š„ๅ•ไธช GraphQL API +- ๅœจ Envio Cloud ไธŠ่ฟ›่กŒๆ‰˜็ฎก **ๆ–‡ๆกฃ** -Envio ็š„ HyperIndex ๅคฉ็”Ÿๆ”ฏๆŒไฝฟ็”จๆ‚จ่‡ชๅทฑ็š„ RPC ไฝœไธบๆ•ฐๆฎๆบๅผ€็ฎฑๅณ็”จๅœฐ็ดขๅผ•ไปปไฝ• EVM ้“พ๏ผŒๅŒ…ๆ‹ฌ Stableใ€‚ +Envio ็š„ HyperIndex ๆœฌๆœบๆ”ฏๆŒ็ดขๅผ•ไปปไฝ• EVM ้“พ๏ผŒๅŒ…ๆ‹ฌ Stable๏ผŒๅผ€็ฎฑๅณ็”จ๏ผŒไฝฟ็”จๆ‚จ่‡ชๅทฑ็š„ RPC ไฝœไธบๆ•ฐๆฎๆบใ€‚ [https://docs.envio.dev/](https://docs.envio.dev/) @@ -52,25 +53,25 @@ Envio ็š„ HyperIndex ๅคฉ็”Ÿๆ”ฏๆŒไฝฟ็”จๆ‚จ่‡ชๅทฑ็š„ RPC ไฝœไธบๆ•ฐๆฎๆบๅผ€็ฎฑๅณ ไธบ่ถ…่ฟ‡ 75,000 ไธช้กน็›ฎๆไพ›ๆ•ฐๆฎ่ฎฟ้—ฎ็š„ๅŽปไธญๅฟƒๅŒ–็ดขๅผ•ๅ่ฎฎใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** -- ้€‚็”จไบŽ Stable ็š„ Subgraph +- Stable ็š„ๅญๅ›พ - ๅŸบไบŽ GraphQL ็š„ๆŸฅ่ฏข - ๅˆ†ๅธƒๅผ็ดขๅผ•็ฝ‘็ปœ **ๆ–‡ๆกฃ** -้ตๅพชๆญคๅฟซ้€Ÿๅ…ฅ้—จๆŒ‡ๅ—๏ผŒๅœจๅ‡ ๅˆ†้’Ÿๅ†…ๅˆ›ๅปบใ€้ƒจ็ฝฒๅ’ŒๆŸฅ่ฏข subgraph๏ผš +ๆŒ‰็…งๆญคๅฟซ้€Ÿๅ…ฅ้—จๆŒ‡ๅ—ๅœจๅ‡ ๅˆ†้’Ÿๅ†…ๅˆ›ๅปบใ€้ƒจ็ฝฒๅ’ŒๆŸฅ่ฏขๅญๅ›พ๏ผš [https://thegraph.com/docs/en/developing/creating-a-subgraph/](https://thegraph.com/docs/en/developing/creating-a-subgraph/) ### Ormi Labs -Ormi ๆ˜ฏไธ€ๆฌพไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกไบคไป˜ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พๆ•ฐๆฎใ€‚ +Ormi ๆ˜ฏไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกๆไพ›ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พๆ•ฐๆฎใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** -- ้“พ็ซฏ็ดขๅผ• +- ้“พๅฐ–็ดขๅผ• - ไบš็ง’็บงๆŸฅ่ฏขๅปถ่ฟŸ - ๆ— ไปฃ็ ๅŠŸ่ƒฝ @@ -86,13 +87,13 @@ Ormi ๆ˜ฏไธ€ๆฌพไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกไบคไป˜ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พ ### Goldsky -ๅ…ทๆœ‰ๅณๆ—ถ subgraph ๅ’Œๅผ€ๅ‘ไบบๅ‘˜ๅทฅๅ…ท็š„้ซ˜ๆ€ง่ƒฝ็ดขๅผ•ๅนณๅฐใ€‚ +้ซ˜ๆ€ง่ƒฝ็ดขๅผ•ๅนณๅฐ๏ผŒๆไพ›ๅณๆ—ถๅญๅ›พๅ’Œๅผ€ๅ‘่€…ๅทฅๅ…ทใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** -- Subgraph ้ƒจ็ฝฒๅ’Œ็ฎก็† +- ๅญๅ›พ้ƒจ็ฝฒๅ’Œ็ฎก็† - ็”จไบŽๅฎžๆ—ถไบ‹ไปถๆต็š„ Webhook ๅˆ›ๅปบ -- ๅคš subgraph ๅŒๆญฅๅˆฐๅค–้ƒจๆ•ฐๆฎๅบ“ +- ๅคšๅญๅ›พๅŒๆญฅๅˆฐๅค–้ƒจๆ•ฐๆฎๅบ“ **ๆ–‡ๆกฃ** @@ -100,18 +101,49 @@ Ormi ๆ˜ฏไธ€ๆฌพไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกไบคไป˜ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พ ๅฆ‚้œ€ 24/7 ๆ”ฏๆŒ๏ผŒ่ฏท่”็ณป [support@goldsky.com](mailto:support@goldsky.com)ใ€‚ +### SQD + +SQD ้€š่ฟ‡ Portal ๆไพ› Stable ๆ•ฐๆฎ๏ผŒPortal ๆ˜ฏไธ€ไธช HTTP ๆต API๏ผŒๅฎƒ่ฟ”ๅ›ž่งฃ็ ็š„ใ€ๆจกๅผ็ฑปๅž‹ๅŒ–็š„่กจ่€Œไธๆ˜ฏๅŽŸๅง‹้“พ็Šถๆ€๏ผŒๅ› ๆญคๆ‚จๅฏไปฅๅœจไธ่ฟ่กŒๅญ˜ๆกฃ่Š‚็‚น็š„ๆƒ…ๅ†ตไธ‹่ฟ›่กŒ็ดขๅผ•ใ€‚้œ€่ฆ่‡ชๅฎšไน‰่ฝฌๆข็š„ๅ›ข้˜Ÿไฝฟ็”จ Squid ๅ’Œ Pipes SDK ๆž„ๅปบ็ดขๅผ•ๅ™จ๏ผŒๅฏ่‡ชๆ‰˜็ฎกๆˆ–ๅœจ SQD Cloud ไธŠ่ฟ่กŒใ€‚ + +**ๅŠŸ่ƒฝ** + +- ้€š่ฟ‡ๅ•ไธช HTTP ็ซฏ็‚น่ฟ›่กŒๅŒบๅ—ใ€ไบคๆ˜“ๅ’Œๆ—ฅๅฟ—็š„ๅކๅฒๅ’Œๅฎžๆ—ถๆต +- ่ฆ†็›– `stable-mainnet`๏ผˆ้“พ ID 988๏ผ‰ๅ’Œ `stable-testnet`๏ผˆ้“พ ID 2201๏ผ‰็š„ๅทฒ่งฃ็ ใ€ๆจกๅผๅŒ–่กจ +- ็”จไบŽ่‡ชๅฎšไน‰็ดขๅผ•ๅ™จ็š„ Squid ๅ’Œ Pipes SDK๏ผŒๅ…ทๆœ‰็”จไบŽ Postgresใ€ClickHouseใ€MongoDBใ€SQLite ๅ’Œ Parquet ็š„่ฟžๆŽฅๅ™จ +- ๅŒบๅ—ๅœจๅˆฐ่พพ Portal ไน‹ๅ‰็”ฑ SQD Network ๅทฅไฝœไบบๅ‘˜้ชŒ่ฏ + +:::note +Stable ๆ•ฐๆฎ้›†ๅœจ SQD ไธŠๆ˜ฏ็งๆœ‰็š„ใ€‚ไผไธšๅฎขๆˆท้€š่ฟ‡ SQD Private Portal ๆŒ‰่ฏทๆฑ‚่Žทๅพ—่ฎฟ้—ฎๆƒ้™๏ผŒ่€Œไธๆ˜ฏ้€š่ฟ‡ๅ…ฌๅ…ฑ็ฝ‘็ปœใ€‚ๆต‹่ฏ•็ฝ‘่ฆ†็›–่Œƒๅ›ดไปŽๅŒบๅ— 39,381,701 ๅผ€ๅง‹๏ผŒ่€Œไธๆ˜ฏๅˆ›ไธ–ๅŒบๅ—ใ€‚ +::: + +**ๆ–‡ๆกฃ** + +้˜…่ฏป Stable ่ฆ†็›–่ฏฆๆƒ…ใ€ๆ•ฐๆฎ้›† slug ๅ’Œ็ซฏ็‚น๏ผš + +[https://sqd.dev/chains/stable/](https://sqd.dev/chains/stable/) + +ไปŽ Portal ๆตๅผไผ ่พ“่งฃ็ ๆ•ฐๆฎ๏ผš + +[https://docs.sqd.dev/en/portal/evm/quickstart](https://docs.sqd.dev/en/portal/evm/quickstart) + +ไฝฟ็”จ Pipes SDK ๆž„ๅปบ่‡ชๅฎšไน‰็ดขๅผ•ๅ™จ๏ผš + +[https://docs.sqd.dev/en/sdk/pipes-sdk/evm/quickstart](https://docs.sqd.dev/en/sdk/pipes-sdk/evm/quickstart) + +**ๅผ€ๅง‹ไฝฟ็”จ**๏ผš[่”็ณป SQD](https://sqd.dev/contact/) ไปฅ่Žทๅ– Stable ๆ•ฐๆฎ้›†็š„่ฎฟ้—ฎๆƒ้™๏ผŒ็„ถๅŽไปŽ Portal ๆตๅผไผ ่พ“ๆˆ–ๆŒ‡ๅ‘ SDK ็ดขๅผ•ๅ™จใ€‚ + ## 2. ๅˆ†ๆžๆไพ›ๅ•† ๅˆ†ๆžๅทฅๅ…ทๅฏๅธฎๅŠฉๅ›ข้˜Ÿ่ทŸ่ธช็ฝ‘็ปœๆดปๅŠจใ€ๅฎž้™…ๆ”ฏไป˜ใ€ไปช่กจๆฟใ€ไฝฟ็”จๆต็จ‹ๅ’Œๅˆ็บฆไบคไบ’ใ€‚ ### Allium -ไธ€ไธช้ขๅ‘ๆ•ดไธชๅŒบๅ—้“พ็”Ÿๆ€็ณป็ปŸๅทฅ็จ‹ๅธˆๅ’Œๅˆ†ๆžๅธˆ็š„ๅŸบ็ก€ๆ•ฐๆฎๅนณๅฐใ€‚ +้ขๅ‘ๅŒบๅ—้“พ็”Ÿๆ€็ณป็ปŸไธญ็š„ๅทฅ็จ‹ๅธˆๅ’Œๅˆ†ๆžๅธˆ็š„ๅŸบ็ก€ๆ•ฐๆฎๅนณๅฐใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** -- ่ง„่ŒƒๅŒ–็š„ๅŒบๅ—้“พๆ•ฐๆฎ้›† -- ๅˆ†ๆžๅ›ข้˜Ÿ็š„ๆŸฅ่ฏขๅทฅๅ…ท +- ๆ ‡ๅ‡†ๅŒ–็š„ๅŒบๅ—้“พๆ•ฐๆฎ้›† +- ้ขๅ‘ๅˆ†ๆžๅ›ข้˜Ÿ็š„ๆŸฅ่ฏขๅทฅๅ…ท - ไผไธšๆ•ฐๆฎๅŸบ็ก€่ฎพๆ–ฝ **ๆ–‡ๆกฃ** @@ -120,13 +152,13 @@ Ormi ๆ˜ฏไธ€ๆฌพไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกไบคไป˜ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พ [https://www.allium.so/](https://www.allium.so/) -**ๅ…ฅ้—จ**๏ผšๅœจ [allium.so](https://www.allium.so/) ๆณจๅ†Œไปฅ่Žทๅ– API ่ฎฟ้—ฎๆƒ้™๏ผŒ็„ถๅŽไฝฟ็”จ REST API ๆŸฅ่ฏข่ง„่ŒƒๅŒ–็š„ Stable ้“พไธŠๆ•ฐๆฎ้›†ใ€‚ +**ๅผ€ๅง‹ไฝฟ็”จ**๏ผšๅœจ [allium.so](https://www.allium.so/) ๆณจๅ†Œไปฅ่Žทๅ– API ่ฎฟ้—ฎๆƒ้™๏ผŒ็„ถๅŽไฝฟ็”จ REST API ๆŸฅ่ฏขๆ ‡ๅ‡†ๅŒ–็š„ Stable ้“พไธŠๆ•ฐๆฎ้›†ใ€‚ ### CoinMarketCap ๅ…จ็ƒๆœ€ๅคง็š„ๅŠ ๅฏ†่ต„ไบงๅธ‚ๅœบ่ทŸ่ธชๅนณๅฐใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** - Stable ่ต„ไบง็š„ไปทๆ ผ่ทŸ่ธช - ๆŠ•่ต„็ป„ๅˆๅทฅๅ…ท @@ -138,17 +170,17 @@ Ormi ๆ˜ฏไธ€ๆฌพไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกไบคไป˜ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พ [https://coinmarketcap.com/api/](https://coinmarketcap.com/api/) -**ๅ…ฅ้—จ**๏ผšๅœจ [coinmarketcap.com/api](https://coinmarketcap.com/api/) ๆณจๅ†Œ API ๅฏ†้’ฅ๏ผŒๅนถ้€š่ฟ‡ REST API ๆŸฅ่ฏข Stable ่ต„ไบงไปทๆ ผๅ’Œๅธ‚ๅœบๆ•ฐๆฎใ€‚ +**ๅผ€ๅง‹ไฝฟ็”จ**๏ผšๅœจ [coinmarketcap.com/api](https://coinmarketcap.com/api/) ๆณจๅ†Œไธ€ไธช API ๅฏ†้’ฅ๏ผŒๅนถ้€š่ฟ‡ REST API ๆŸฅ่ฏข Stable ่ต„ไบงไปทๆ ผๅ’Œๅธ‚ๅœบๆ•ฐๆฎใ€‚ ### CoinGecko -ๅ…จ็ƒๆœ€ๅคง็š„็‹ฌ็ซ‹ๅŠ ๅฏ†่ดงๅธๆ•ฐๆฎ่šๅˆๅ™จใ€‚ +ๅ…จ็ƒๆœ€ๅคง็š„็‹ฌ็ซ‹ๅŠ ๅฏ†ๆ•ฐๆฎ่šๅˆๅ™จใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** - ๅธ‚ๅœบๅˆ—่กจๅ’Œไปทๆ ผๆ•ฐๆฎ - ๅކๅฒๅˆ†ๆž -- ๅผ€ๅ‘ไบบๅ‘˜ API ่ฎฟ้—ฎ +- ้ขๅ‘ๅผ€ๅ‘่€…็š„ API ่ฎฟ้—ฎ **ๆ–‡ๆกฃ** @@ -156,31 +188,31 @@ Ormi ๆ˜ฏไธ€ๆฌพไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกไบคไป˜ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พ [https://www.coingecko.com/en/api](https://www.coingecko.com/en/api) -**ๅ…ฅ้—จ**๏ผšไปŽ [coingecko.com/en/api](https://www.coingecko.com/en/api) ่Žทๅ–ๅ…่ดนๆˆ–ไธ“ไธš API ๅฏ†้’ฅ๏ผŒๅนถ้€š่ฟ‡ REST API ๆŸฅ่ฏข Stable ไปฃๅธไปทๆ ผๅ’Œๅธ‚ๅœบๆ•ฐๆฎใ€‚ +**ๅผ€ๅง‹ไฝฟ็”จ**๏ผšไปŽ [coingecko.com/en/api](https://www.coingecko.com/en/api) ่Žทๅ–ๅ…่ดนๆˆ–ไธ“ไธš็‰ˆ API ๅฏ†้’ฅ๏ผŒๅนถ้€š่ฟ‡ REST API ๆŸฅ่ฏข Stable ไปฃๅธไปทๆ ผๅ’Œๅธ‚ๅœบๆ•ฐๆฎใ€‚ ### Dexscreener -ๅŽปไธญๅฟƒๅŒ–ๅธ‚ๅœบ็š„ๅฎžๆ—ถๅ›พ่กจๅ’Œๅˆ†ๆžใ€‚ +ๅŽปไธญๅฟƒๅŒ–ๅœบๆ‰€็š„ๅฎžๆ—ถๅ›พ่กจๅ’Œๅˆ†ๆžใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** - ๅฎžๆ—ถ DEX ๅ›พ่กจ -- ๆตๅŠจๆ€งๅ’Œไบคๆ˜“ๅฏนๅˆ†ๆž +- ๆตๅŠจๆ€งๅ’Œ้…ๅฏนๅˆ†ๆž - ไบคๆ˜“ไปช่กจๆฟ **ๆ–‡ๆกฃ** -ๆŽข็ดข Dexscreener ็š„ API ็ซฏ็‚นๅ’Œๅผ€ๅ‘ไบบๅ‘˜ๅทฅๅ…ท๏ผš +ๆŽข็ดข Dexscreener ็š„ API ็ซฏ็‚นๅ’Œๅผ€ๅ‘่€…ๅทฅๅ…ท๏ผš [https://docs.dexscreener.com/](https://docs.dexscreener.com/) -**ๅ…ฅ้—จ**๏ผšๆต่งˆ [Dexscreener API ๆ–‡ๆกฃ](https://docs.dexscreener.com/)๏ผŒๆŸฅ่ฏขๅŸบไบŽ Stable ็š„ DEX ๆฑ ็š„ๅฎžๆ—ถไบคๆ˜“ๅฏนๆ•ฐๆฎใ€ๆตๅŠจๆ€งๅ’Œไบคๆ˜“ๆดปๅŠจใ€‚ +**ๅผ€ๅง‹ไฝฟ็”จ**๏ผšๆต่งˆ [Dexscreener API ๆ–‡ๆกฃ](https://docs.dexscreener.com/)๏ผŒๆŸฅ่ฏขๅŸบไบŽ Stable ็š„ DEX ๆฑ ็š„ๅฎžๆ—ถ้…ๅฏนๆ•ฐๆฎใ€ๆตๅŠจๆ€งๅ’Œไบคๆ˜“ๆดปๅŠจใ€‚ ### DeBank -ไปฅๅคชๅŠๅ’Œ EVM ็”Ÿๆ€็ณป็ปŸ็š„ๆŠ•่ต„็ป„ๅˆ่ทŸ่ธชๅ™จใ€‚ +ไปฅๅคชๅŠๅ’Œ EVM ็”Ÿๆ€็ณป็ปŸ็š„ๆŠ•่ต„็ป„ๅˆ่ฟฝ่ธชๅ™จใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** - ้’ฑๅŒ…ๅˆ†ๆž - ไบคๆ˜“ๆ‘˜่ฆ @@ -192,31 +224,31 @@ Ormi ๆ˜ฏไธ€ๆฌพไธ‹ไธ€ไปฃ็ดขๅผ•ๅ™จ๏ผŒๆ—จๅœจๅคง่ง„ๆจกไบคไป˜ๅฎžๆ—ถๅ’ŒๅކๅฒๅŒบๅ—้“พ [https://docs.debank.com/](https://docs.debank.com/) -**ๅ…ฅ้—จ**๏ผšๆณจๅ†Œ [DeBank Cloud](https://cloud.debank.com/) ไปฅ่Žทๅ– API ๅฏ†้’ฅ๏ผŒๅนถๆŸฅ่ฏข Stable ้’ฑๅŒ…ไฝ™้ขใ€ไบคๆ˜“ๅކๅฒๅ’ŒๆŠ•่ต„็ป„ๅˆๆ•ฐๆฎใ€‚ +**ๅผ€ๅง‹ไฝฟ็”จ**๏ผšๆณจๅ†Œ [DeBank Cloud](https://cloud.debank.com/) ไปฅ่Žทๅ– API ๅฏ†้’ฅ๏ผŒๅนถๆŸฅ่ฏข Stable ้’ฑๅŒ…ไฝ™้ขใ€ไบคๆ˜“ๅކๅฒๅ’ŒๆŠ•่ต„็ป„ๅˆๆ•ฐๆฎใ€‚ ## 3. ๅˆ่ง„ๅ’Œ่ฐƒๆŸฅ -ๅˆ่ง„ๅ’Œ่ฐƒๆŸฅๅนณๅฐๅธฎๅŠฉๅ›ข้˜Ÿ็›‘ๆŽงไบคๆ˜“้ฃŽ้™ฉๅนถ่ฟฝ่ธช้“พไธŠ่ต„้‡‘ๆตใ€‚ +ๅˆ่ง„ๅ’Œ่ฐƒๆŸฅๅนณๅฐๅฏๅธฎๅŠฉๅ›ข้˜Ÿ็›‘ๆŽงไบคๆ˜“้ฃŽ้™ฉๅนถ่ฟฝ่ธช้“พไธŠ่ต„้‡‘ๆตๅ‘ใ€‚ ### Chainalysis Chainalysis ้€š่ฟ‡ๅ…ถ [KYT](https://www.chainalysis.com/product/kyt/)ใ€ๅฎžไฝ“็ญ›้€‰ไบงๅ“ๅ’Œ [Reactor](https://www.chainalysis.com/product/reactor/) ๆ”ฏๆŒ Stableใ€‚ -ๅฝ“้ƒจ็ฝฒๅœจ Stable ไธŠ็š„ๆ–ฐ็š„ๅฏๆ›ฟไปฃๅ’Œไธๅฏๆ›ฟไปฃไปฃๅธ้ตๅพชไธป่ฆๆ ‡ๅ‡†๏ผˆๅฆ‚ ERC-20 ๅ’Œ ERC-721๏ผ‰ๆ—ถ๏ผŒๅฎƒไปฌๅฐ†่‡ชๅŠจ่Žทๅพ—่ฆ†็›–ใ€‚ +ๅœจ Stable ไธŠ้ƒจ็ฝฒ็š„ๆ–ฐๅฏไบ’ๆขไปฃๅธๅ’Œไธๅฏไบ’ๆขไปฃๅธ๏ผˆไพ‹ๅฆ‚้ตๅพช ERC-20 ๅ’Œ ERC-721 ็ญ‰ไธป่ฆๆ ‡ๅ‡†๏ผ‰ไผš่‡ชๅŠจ่ฆ†็›–ใ€‚ -**่ƒฝๅŠ›** +**ๅŠŸ่ƒฝ** - ้€š่ฟ‡ KYT ๅฏน Stable ไปฃๅธ่ฟ›่กŒๆŒ็ปญ็›‘ๆŽงๅ’Œๅฏๆ“ไฝœ่ญฆๆŠฅ - ๅฏน Stable ่ฟ›่กŒๅฎžไฝ“็ญ›้€‰ -- ่ทจ Stable ไปฃๅธ็š„่ต„้‡‘ๆต่ฟฝ่ธชๅ’Œไบคๆ˜“่ฐƒๆŸฅ +- ๅฏน Stable ไปฃๅธ่ฟ›่กŒ่ต„้‡‘ๆตๅ‘่ทŸ่ธชๅ’Œไบคๆ˜“่ฐƒๆŸฅ - ่‡ชๅŠจ่ฆ†็›–้ตๅพช ERC-20 ๅ’Œ ERC-721 ็ญ‰ๆ ‡ๅ‡†็š„ๆ–ฐไปฃๅธ **ๆ–‡ๆกฃ** -้˜…่ฏป [Stable ้›†ๆˆๅ…ฌๅ‘Š](https://www.chainalysis.com/blog/stable-automatic-token-support/)ไปฅ่Žทๅ–่ฆ†็›–่ฏฆ็ป†ไฟกๆฏใ€‚ +้˜…่ฏป [Stable ้›†ๆˆๅ…ฌๅ‘Š](https://www.chainalysis.com/blog/stable-automatic-token-support/) ไปฅไบ†่งฃ่ฆ†็›–่ฏฆๆƒ…ใ€‚ [็”ณ่ฏท Chainalysis ๆผ”็คบ](https://www.chainalysis.com/request-a-demo/)ใ€‚ --- -ๆ˜ฏๅฆๆœ‰้›†ๆˆ Stable ็š„็ดขๅผ•ใ€ๅˆ†ๆžใ€ๅˆ่ง„ๆˆ–่ฐƒๆŸฅๅนณๅฐ๏ผŸ่ฏท้€š่ฟ‡ [bizdev@stable.xyz](mailto:bizdev@stable.xyz) ่”็ณปๆˆ‘ไปฌใ€‚ +ๆ˜ฏๅฆๆœ‰้›†ๆˆไบ† Stable ็š„็ดขๅผ•ใ€ๅˆ†ๆžใ€ๅˆ่ง„ๆˆ–่ฐƒๆŸฅๅนณๅฐ๏ผŸ่ฏท้€š่ฟ‡ [bizdev@stable.xyz](mailto:bizdev@stable.xyz) ่”็ณปๆˆ‘ไปฌใ€‚ diff --git a/docs/pages/cn/reference/node-operations-overview.mdx b/docs/pages/cn/reference/node-operations-overview.mdx index c4e2bda..74b1401 100755 --- a/docs/pages/cn/reference/node-operations-overview.mdx +++ b/docs/pages/cn/reference/node-operations-overview.mdx @@ -1,71 +1,71 @@ --- source_path: reference/node-operations-overview.mdx -source_sha: 292d91190bd4c06f8a2e4e87f9253a9bb856c28a -title: "่ฟ็ปด" -description: "่ฟ่กŒ Stable ่Š‚็‚นใ€‚ๅฎ‰่ฃ…ใ€้…็ฝฎใ€็›‘ๆŽงไธŽๅ‡็บงใ€‚" +source_sha: 834cf7cad55269092423973290344330f70a4a77 +title: "่ฟ่กŒ Stable ่Š‚็‚น" +description: "่ฟ่กŒ Stable ่Š‚็‚นใ€‚ๅฎ‰่ฃ…ใ€้…็ฝฎใ€็›‘ๆŽงๅ’Œๅ‡็บงใ€‚" diataxis: "reference" --- -# ่ฟ็ปด +# ่ฟ่กŒ Stable ่Š‚็‚น -่ฟ็ปดๆถต็›–่ฟ่กŒ Stable ่Š‚็‚น็š„ๆ–นๆ–น้ข้ข๏ผšๅ…จ่Š‚็‚นๆˆ–ๅฝ’ๆกฃ่Š‚็‚นใ€ๆต‹่ฏ•็ฝ‘ๆˆ–ไธป็ฝ‘๏ผŒไปŽๅฎ‰่ฃ…ๅˆฐ็›‘ๆŽงใ€‚ๅ…ณไบŽๆ‚จ็š„่Š‚็‚นๆ‰€ๅผบๅˆถๆ‰ง่กŒ็š„้“พ็บง่กŒไธบ๏ผˆ่ดน็”จๆจกๅž‹ใ€ๆœ€็ปˆๆ€งใ€USDT0 ไฝœไธบ gas๏ผ‰๏ผŒ่ฏทๅ‚้˜… [Gas ๅฎšไปท](/cn/explanation/gas-pricing)ใ€[ๆœ€็ปˆๆ€ง](/cn/explanation/finality) ๅ’Œ [ๆžถๆž„ๆฆ‚่งˆ](/cn/explanation/core-optimization-overview)ใ€‚ +ๆœฌ่Š‚ไป‹็ปๅฆ‚ไฝ•่ฟ่กŒ Stable ่Š‚็‚น๏ผšๅฎŒๆ•ด่Š‚็‚นๆˆ–ๅฝ’ๆกฃ่Š‚็‚น๏ผŒๆต‹่ฏ•็ฝ‘ๆˆ–ไธป็ฝ‘๏ผŒไปŽๅฎ‰่ฃ…ๅˆฐ็›‘ๆŽงใ€‚ๆœ‰ๅ…ณๆ‚จ็š„่Š‚็‚นๅผบๅˆถๆ‰ง่กŒ็š„้“พ็บง่กŒไธบ๏ผˆ่ดน็”จๆจกๅž‹ใ€ๆœ€็ปˆๆ€งใ€USDT0 ไฝœไธบ็‡ƒๆ–™๏ผ‰๏ผŒ่ฏทๅ‚้˜…[็‡ƒๆ–™ๅฎšไปท](/cn/explanation/gas-pricing)ใ€[ๆœ€็ปˆๆ€ง](/cn/explanation/finality)ๅ’Œ[ๆžถๆž„ๆฆ‚่ฟฐ](/cn/explanation/core-optimization-overview)ใ€‚ ## ๅฟซ้€Ÿ้“พๆŽฅ - **[็ณป็ปŸ่ฆๆฑ‚](/cn/reference/node-system-requirements)** - ไธๅŒ่Š‚็‚น็ฑปๅž‹็š„็กฌไปถๅ’Œ่ฝฏไปถ่ฆๆฑ‚ -- **[ๅฎ‰่ฃ…ๆŒ‡ๅ—](/cn/how-to/install-node)** - ๅ„็งๅนณๅฐ็š„ๅˆ†ๆญฅๅฎ‰่ฃ…่ฏดๆ˜Ž +- **[ๅฎ‰่ฃ…ๆŒ‡ๅ—](/cn/how-to/install-node)** - ้’ˆๅฏนๅ„็งๅนณๅฐ็š„้€ๆญฅๅฎ‰่ฃ…่ฏดๆ˜Ž - **[้…็ฝฎ](/cn/reference/node-configuration)** - ่ฏฆ็ป†็š„้…็ฝฎ้€‰้กนๅ’Œๆœ€ไฝณๅฎž่ทต -- **[ๅฟซ็…งไธŽๅŒๆญฅ](/cn/how-to/use-node-snapshots)** - ไฝฟ็”จๅฟซ็…ง็š„ๅฟซ้€ŸๅŒๆญฅ้€‰้กน +- **[ๅฟซ็…งไธŽๅŒๆญฅ](/cn/how-to/use-node-snapshots)** - ไฝฟ็”จๅฟซ็…ง่ฟ›่กŒๅฟซ้€ŸๅŒๆญฅ - **[ๅˆ›ๅปบ้ชŒ่ฏ่€…](/cn/how-to/run-validator)** - ๅฐ†ๅทฒๅŒๆญฅ็š„่Š‚็‚นๆณจๅ†Œไธบ้ชŒ่ฏ่€…ๅนถ่ฟ›่กŒ่‡ชๅง”ๆ‰˜ -- **[ๅ‡็บงๆŒ‡ๅ—](/cn/how-to/upgrade-node)** - ่Š‚็‚นๅ‡็บงๆต็จ‹ๅ’Œ็‰ˆๆœฌๅކๅฒ -- **[็›‘ๆŽง](/cn/how-to/monitor-node)** - ่Š‚็‚น็›‘ๆŽง็š„ๅทฅๅ…ทๅ’ŒๆŒ‡ๆ ‡ -- **[ๆ•…้šœๆŽ’ๆŸฅ](/cn/how-to/troubleshoot-node)** - ๅธธ่ง้—ฎ้ข˜ๅ’Œ่งฃๅ†ณๆ–นๆกˆ +- **[ๅ‡็บงๆŒ‡ๅ—](/cn/how-to/upgrade-node)** - ่Š‚็‚นๅ‡็บง็จ‹ๅบๅ’Œ็‰ˆๆœฌๅކๅฒ่ฎฐๅฝ• +- **[็›‘ๆŽง](/cn/how-to/monitor-node)** - ่Š‚็‚น็›‘ๆŽงๅทฅๅ…ทๅ’ŒๆŒ‡ๆ ‡ +- **[ๆ•…้šœๆŽ’้™ค](/cn/how-to/troubleshoot-node)** - ๅธธ่ง้—ฎ้ข˜ๅ’Œ่งฃๅ†ณๆ–นๆกˆ -ๅฆ‚้œ€ไปŽ้“พไธŠ่ฏปๅ–้ชŒ่ฏ่€…ๆ•ฐๆฎ๏ผˆ่ดจๆŠผใ€ๅœจ็บฟๆ—ถ้•ฟใ€ๆŠ•็ฅจๅކๅฒ๏ผ‰่€Œไธ่ฟ่กŒ `stabled`๏ผŒ่ฏทๅ‚้˜… [็ดขๅผ•้ชŒ่ฏ่€…ๆ•ฐๆฎ](/cn/how-to/index-validator-data)ใ€‚ +่ฆไปŽ้“พไธญ่ฏปๅ–้ชŒ่ฏ่€…ๆ•ฐๆฎ๏ผˆๆƒ็›Šใ€ๆญฃๅธธ่ฟ่กŒๆ—ถ้—ดใ€ๆŠ•็ฅจๅކๅฒ๏ผ‰๏ผŒ่€Œไธๆ˜ฏ่ฟ่กŒ `stabled`๏ผŒ่ฏทๅ‚้˜…[็ดขๅผ•้ชŒ่ฏ่€…ๆ•ฐๆฎ](/cn/how-to/index-validator-data)ใ€‚ ## ่Š‚็‚น็ฑปๅž‹ ### ๅ…จ่Š‚็‚น ๅ…จ่Š‚็‚น็ปดๆŠคๅŒบๅ—้“พ็š„ๅฎŒๆ•ดๅ‰ฏๆœฌ๏ผŒๅนถ้ชŒ่ฏๆ‰€ๆœ‰ไบคๆ˜“ๅ’ŒๅŒบๅ—ใ€‚ๅ…จ่Š‚็‚น๏ผš - ้ชŒ่ฏๆ‰€ๆœ‰ไบคๆ˜“ๅ’ŒๅŒบๅ— -- ็ปดๆŠคๆ•ดไธชๅŒบๅ—้“พๅކๅฒ -- ๅฏไปฅๅ‘ๅ…ถไป–่Š‚็‚นๆไพ›ๆ•ฐๆฎ +- ็ปดๆŠคๅฎŒๆ•ด็š„ๅŒบๅ—้“พๅކๅฒ +- ๅฏไปฅไธบๅ…ถไป–่Š‚็‚นๆไพ›ๆ•ฐๆฎ - ๆ”ฏๆŒ็ฝ‘็ปœ็š„ๅŽปไธญๅฟƒๅŒ– ### ๅฝ’ๆกฃ่Š‚็‚น -ๅฝ’ๆกฃ่Š‚็‚นๅญ˜ๅ‚จๆ‰€ๆœ‰็Šถๆ€็š„ๅฎŒๆ•ดๅކๅฒ๏ผŒๅนถ่ƒฝๆไพ›ๅކๅฒๆŸฅ่ฏขใ€‚ๅฝ’ๆกฃ่Š‚็‚น๏ผš +ๅฝ’ๆกฃ่Š‚็‚นๅญ˜ๅ‚จๆ‰€ๆœ‰็Šถๆ€็š„ๅฎŒๆ•ดๅކๅฒ่ฎฐๅฝ•๏ผŒๅนถๅฏไปฅๆไพ›ๅކๅฒๆŸฅ่ฏขใ€‚ๅฝ’ๆกฃ่Š‚็‚น๏ผš - ๅญ˜ๅ‚จๆ‰€ๆœ‰ๅކๅฒ็Šถๆ€ -- ๆ”ฏๆŒๅœจไปปๆ„ๅŒบๅ—้ซ˜ๅบฆ่ฟ›่กŒๅކๅฒๆŸฅ่ฏข +- ๆ”ฏๆŒไปปไฝ•ๅŒบๅ—้ซ˜ๅบฆ็š„ๅކๅฒๆŸฅ่ฏข - ้œ€่ฆๆ˜พ่‘—ๆ›ดๅคš็š„ๅญ˜ๅ‚จ็ฉบ้—ด -- ๅฏนๅŒบๅ—ๆต่งˆๅ™จๅ’Œๅˆ†ๆžๅทฅๅ…ท่‡ณๅ…ณ้‡่ฆ +- ๅฏนไบŽๅŒบๅ—ๆต่งˆๅ™จๅ’Œๅˆ†ๆž่‡ณๅ…ณ้‡่ฆ ## ็ฝ‘็ปœไฟกๆฏ -ๅฆ‚้œ€ๅฎŒๆ•ด็š„็ฝ‘็ปœ่ฏฆๆƒ…๏ผŒๅŒ…ๆ‹ฌ RPC ็ซฏ็‚นใ€ๅŒบๅ—ๆต่งˆๅ™จๅ’Œ้“พๅ‚ๆ•ฐ๏ผŒ่ฏทๅ‚้˜…๏ผš +ๆœ‰ๅ…ณๅฎŒๆ•ด็š„็ฝ‘็ปœ่ฏฆ็ป†ไฟกๆฏ๏ผŒๅŒ…ๆ‹ฌ RPC ็ซฏ็‚นใ€ๅŒบๅ—ๆต่งˆๅ™จๅ’Œ้“พๅ‚ๆ•ฐ๏ผŒ่ฏทๅ‚้˜…๏ผš - **[ไธป็ฝ‘](/cn/reference/mainnet-information)** - ไธป็ฝ‘่ฏฆๆƒ… - **[ๆต‹่ฏ•็ฝ‘](/cn/reference/testnet-information)** - ๆต‹่ฏ•็ฝ‘่ฏฆๆƒ… ## ๆ”ฏๆŒไธŽ็คพๅŒบ -- **Discord**๏ผš[ๅŠ ๅ…ฅ Stable Discord](https://discord.gg/stablexyz) +- **Discord**: [ๅŠ ๅ…ฅ Stable Discord](https://discord.gg/stablexyz) -## ๅฟซ้€Ÿๅผ€ๅง‹ +## ๅฟซ้€Ÿๅ…ฅ้—จ -้ขๅ‘ๅธŒๆœ›ๅฟซ้€ŸไธŠๆ‰‹็š„็ป้ชŒไธฐๅฏŒ็š„่ฟ็ปดไบบๅ‘˜๏ผš +ๅฏนไบŽๅธŒๆœ›ๅฟซ้€Ÿๅ…ฅ้—จ็š„็ป้ชŒไธฐๅฏŒ็š„ๆ“ไฝœๅ‘˜๏ผš -1. ๆŸฅ็œ‹ [็ณป็ปŸ่ฆๆฑ‚](/cn/reference/node-system-requirements) -2. ้ตๅพช [ๅฎ‰่ฃ…ๆŒ‡ๅ—](/cn/how-to/install-node) -3. ไฝฟ็”จ [้…็ฝฎๆŒ‡ๅ—](/cn/reference/node-configuration) ้…็ฝฎๆ‚จ็š„่Š‚็‚น -4. ้€š่ฟ‡ [ๅฟซ็…ง](/cn/how-to/use-node-snapshots) ๅŠ ๅฟซๅŒๆญฅ -5. ไฝฟ็”จ [็›‘ๆŽงๆŒ‡ๅ—](/cn/how-to/monitor-node) ็›‘ๆŽงๆ‚จ็š„่Š‚็‚น +1. ๆŸฅ็œ‹[็ณป็ปŸ่ฆๆฑ‚](/cn/reference/node-system-requirements) +2. ้ตๅพช[ๅฎ‰่ฃ…ๆŒ‡ๅ—](/cn/how-to/install-node) +3. ไฝฟ็”จ[้…็ฝฎๆŒ‡ๅ—](/cn/reference/node-configuration)้…็ฝฎๆ‚จ็š„่Š‚็‚น +4. ไฝฟ็”จ[ๅฟซ็…ง](/cn/how-to/use-node-snapshots)ๅŠ ๅฟซๅŒๆญฅ +5. ไฝฟ็”จ[็›‘ๆŽงๆŒ‡ๅ—](/cn/how-to/monitor-node)็›‘ๆŽงๆ‚จ็š„่Š‚็‚น -ๅฆ‚้œ€ไบ†่งฃ็ฝ‘็ปœๅ‚ๆ•ฐๅ’Œ RPC ็ซฏ็‚น๏ผŒ่ฏทๅ‚้˜… [ไธป็ฝ‘ไฟกๆฏ](/cn/reference/mainnet-information) ๆˆ– [ๆต‹่ฏ•็ฝ‘ไฟกๆฏ](/cn/reference/testnet-information)ใ€‚ +ๆœ‰ๅ…ณ็ฝ‘็ปœๅ‚ๆ•ฐๅ’Œ RPC ็ซฏ็‚น๏ผŒ่ฏทๅ‚้˜…[ไธป็ฝ‘ไฟกๆฏ](/cn/reference/mainnet-information)ๆˆ–[ๆต‹่ฏ•็ฝ‘ไฟกๆฏ](/cn/reference/testnet-information)ใ€‚ -## ่Š‚็‚น่ฟ็ปดๅฆ‚ไฝ•ไธŽ้“พๅ…ณ่” +## ่Š‚็‚น่ฟ่ฅๅ•†ๅฆ‚ไฝ•่ฟžๆŽฅๅˆฐ้“พ -่ฟ่กŒ่Š‚็‚นๆ„ๅ‘ณ็€ๅผบๅˆถๆ‰ง่กŒ Stable ็š„้“พ็บง่ง„ๅˆ™ใ€‚ไปฅไธ‹้กต้ข่งฃ้‡Šไบ†ๆ‚จ็š„่Š‚็‚นๆ‰€ๅฎž็Žฐ็š„่กŒไธบ๏ผš +่ฟ่กŒ่Š‚็‚นๆ„ๅ‘ณ็€ๅผบๅˆถๆ‰ง่กŒ Stable ็š„้“พ็บง่ง„ๅˆ™ใ€‚่ฟ™ไบ›้กต้ข่งฃ้‡Šไบ†ๆ‚จ็š„่Š‚็‚นๅฎž็Žฐ็š„่กŒไธบ๏ผš -- **[ๅˆ็บฆๆฆ‚่งˆ](/cn/explanation/contracts-overview)** ๆถต็›–่ดน็”จๆจกๅž‹ใ€JSON-RPC ๆŽฅๅฃไปฅๅŠๆ‚จ็š„่Š‚็‚นๆ‰€ๆœๅŠก็š„็ณป็ปŸๆจกๅ—ใ€‚ -- **[ๆœ€็ปˆๆ€ง](/cn/explanation/finality)** ่งฃ้‡Šๅ•ๆงฝๆœ€็ปˆๆ€งไปฅๅŠๅœจๅ…ฑ่ฏ†ๅฑ‚"ๅทฒ็กฎ่ฎค"็š„ๅซไน‰ใ€‚ -- **[ๆžถๆž„ๆฆ‚่งˆ](/cn/explanation/core-optimization-overview)** ่ฏฆ็ป†ไป‹็ปๅ…ฑ่ฏ†ใ€ๆ‰ง่กŒใ€ๆ•ฐๆฎๅบ“ๅ’Œ RPC ๅ„ๅฑ‚ใ€‚ -- **[Gas ๅฎšไปท](/cn/explanation/gas-pricing)** ่งฃ้‡Šไปฅ USDT0 ่ฎกไปท็š„่ดน็”จๅฆ‚ไฝ•ๅฎšไปทๅ’Œๆ”ถๅ–ใ€‚ +- **[ๅˆ็บฆๆฆ‚่ฟฐ](/cn/explanation/contracts-overview)** ๆถต็›–ไบ†ๆ‚จ็š„่Š‚็‚นๆไพ›็š„่ดน็”จๆจกๅž‹ใ€JSON-RPC ็•Œ้ขๅ’Œ็ณป็ปŸๆจกๅ—ใ€‚ +- **[ๆœ€็ปˆๆ€ง](/cn/explanation/finality)** ่งฃ้‡Šไบ†ๅ•ๆงฝๆœ€็ปˆๆ€งไปฅๅŠๅ…ฑ่ฏ†ๅฑ‚โ€œๅทฒ็กฎ่ฎคโ€็š„ๅซไน‰ใ€‚ +- **[ๆžถๆž„ๆฆ‚่ฟฐ](/cn/explanation/core-optimization-overview)** ไป‹็ปไบ†ๅ…ฑ่ฏ†ใ€ๆ‰ง่กŒใ€ๆ•ฐๆฎๅบ“ๅ’Œ RPC ๅฑ‚ใ€‚ +- **[็‡ƒๆ–™ๅฎšไปท](/cn/explanation/gas-pricing)** ่งฃ้‡Šไบ†ไปฅ USDT0 ่ฎกไปท็š„่ดน็”จๅฆ‚ไฝ•ๅฎšไปทๅ’Œๆ”ถๅ–ใ€‚ diff --git a/docs/pages/en/explanation/build-overview.mdx b/docs/pages/en/explanation/build-overview.mdx index 4b19d1f..31130e6 100755 --- a/docs/pages/en/explanation/build-overview.mdx +++ b/docs/pages/en/explanation/build-overview.mdx @@ -20,4 +20,4 @@ New to Stable? Run the [Quick start](/en/tutorial/quick-start) first. It takes f - [**Quick start**](/en/tutorial/quick-start): Connect to testnet, fund a wallet, and send your first USDT0 transaction. - [**Send your first USDT0**](/en/tutorial/send-usdt0): Native and ERC-20 transfers on the same balance, with TypeScript examples. - [**Deploy a smart contract**](/en/tutorial/smart-contract): Scaffold Foundry, configure Stable, and deploy the Counter contract. -- [**Stable SDK**](/en/explanation/sdk-overview): Use the typed TypeScript client for transfer, bridge, and swap on Stable. +- [**Tools and SDK**](/en/explanation/tools-overview): Reach for the typed TypeScript SDKs, the service APIs, and the MCP servers. diff --git a/docs/pages/en/explanation/gas-waiver.mdx b/docs/pages/en/explanation/gas-waiver.mdx index a03f510..73109dc 100755 --- a/docs/pages/en/explanation/gas-waiver.mdx +++ b/docs/pages/en/explanation/gas-waiver.mdx @@ -52,6 +52,18 @@ Gas Waiver fits any flow where the end user shouldn't have to hold USDT0 for gas For flows where the user does hold USDT0 but wants to bundle multiple calls into one signed transaction, see [EIP-7702 delegation](/en/reference/eip-7702-api) instead. +## Choosing an integration path + +All three paths produce the same on-chain result. They differ in who holds the waiver key and how much you build. + +| Path | Who holds the waiver key | Use when | +| :--- | :--- | :--- | +| [Hosted Waiver Server](/en/how-to/integrate-gas-waiver) | Stable, and you authenticate with an API key | You want the shortest path and can depend on Stable's service for submission. | +| [Enterprise SDK](/en/how-to/relay-with-gas-waiver) | You, registered through governance | You run your own waiver in TypeScript and want one call to build, sign, and broadcast. | +| [Self-hosted wrappers](/en/how-to/self-hosted-gas-waiver) | You, registered through governance | You construct wrapper transactions yourself, in a language the SDK doesn't cover. | + +The hosted server registers and operates the waiver for you, so you never construct a `WrapperTx`. Both self-hosted paths need a governance-registered waiver address, and `@stablechain/enterprise` is the typed client for that model. + ## Next recommended - [**Enable gas-free transactions**](/en/how-to/integrate-gas-waiver): Integrate the hosted Waiver Server API with API-key submission and NDJSON responses. diff --git a/docs/pages/en/explanation/tools-overview.mdx b/docs/pages/en/explanation/tools-overview.mdx new file mode 100644 index 0000000..6eecb79 --- /dev/null +++ b/docs/pages/en/explanation/tools-overview.mdx @@ -0,0 +1,39 @@ +--- +title: "Tools and SDK" +description: "Pick the right Stable tool: the typed TypeScript SDKs, the gas waiver and EIP-7702 service APIs, and the MCP servers for AI clients." +diataxis: "explanation" +--- + +# Tools and SDK + +Everything you call Stable with lives here. Building a product on Stable? Start with the [Stable SDK](/en/explanation/sdk-overview) and drop down to a service API when you need a rail the SDK doesn't wrap. Sponsoring gas or relaying transactions from a backend? Start with the [Enterprise SDK](/en/explanation/enterprise-sdk). Wiring Stable into an AI editor or agent? Go to [Develop with AI](/en/how-to/develop-with-ai). + +## Build with SDKs + +- [**Stable SDK**](/en/explanation/sdk-overview): `@stablechain/sdk`, the typed TypeScript client for transfer, bridge, swap, and vault yield. It wraps viem and handles routing, approvals, decimals, and chain switching. +- [**SDK quickstart**](/en/tutorial/sdk-quickstart): Install the package, send your first USDT0 transfer on testnet, and preview a mainnet bridge quote. +- [**SDK reference**](/en/reference/sdk): `createStable`, `createStableReader`, the transfer, bridge, swap, and earn methods, enums, and error classes. +- [**Enterprise SDK**](/en/explanation/enterprise-sdk): `@stablechain/enterprise`, the server-side client for gas-waived transactions and reserved Enterprise-lane blockspace. +- [**Enterprise SDK reference**](/en/reference/enterprise-sdk): `createStableEnterprise`, both rails, build helpers, and error classes. + +## Use the SDK with your stack + +- [**viem**](/en/how-to/sdk-with-viem): Sign three ways: a private-key Account, a browser Transport, or a pre-built viem WalletClient. +- [**wagmi**](/en/how-to/sdk-with-wagmi): Wire the SDK into a React app with `useWalletClient`, `useAccount`, and `useChainId`. +- [**Earn yield**](/en/how-to/earn-yield): Deposit USDT0 into a Morpho vault, read APY and position, withdraw, and claim Merkl rewards. + +## Service APIs + +- [**Gas waiver protocol**](/en/reference/gas-waiver-api): Transaction formats, marker routing, governance controls, and the Waiver Server API you post signed `InnerTx` payloads to. +- [**EIP-7702**](/en/reference/eip-7702-api): Delegation transaction format and RPC behavior for pointing an EOA's account code at a smart contract. + +## AI and agent tooling + +- [**Develop with AI**](/en/how-to/develop-with-ai): Add the Docs MCP and Runtime MCP servers to any MCP-compatible client, plus plain-text docs for tools without MCP. +- [**Pay with MCP server**](/en/how-to/pay-with-mcp): Expose x402-paid APIs as MCP tools so AI clients call and pay for them through prompts. + +## Where to go next + +- [**Quick start**](/en/tutorial/quick-start): Connect to testnet, fund a wallet, and send your first USDT0 transaction. +- [**JSON-RPC API**](/en/reference/json-rpc-api): Supported methods across the `eth`, `net`, `web3`, and `debug` namespaces. +- [**Build**](/en/explanation/build-overview): Accounts, payments, contracts, and agents, organized by what you're shipping. diff --git a/docs/pages/en/how-to/integrate-gas-waiver.mdx b/docs/pages/en/how-to/integrate-gas-waiver.mdx index eaaf45d..29f1288 100755 --- a/docs/pages/en/how-to/integrate-gas-waiver.mdx +++ b/docs/pages/en/how-to/integrate-gas-waiver.mdx @@ -8,7 +8,7 @@ diataxis: "how-to" Gas Waiver enables gas-free transactions on Stable. With Gas Waiver, applications cover gas fees on behalf of users, so users can interact with contracts without holding USDT0 for gas. -This guide covers integrating via the Waiver Server API. +This guide covers the hosted Waiver Server API, where Stable operates the waiver and you authenticate with an API key. To register your own waiver address through governance instead, see [Choosing an integration path](/en/explanation/gas-waiver#choosing-an-integration-path). :::note **Concept:** For what Gas Waiver is, why it exists, and how governance-authorized waivers work, see [Gas waiver](/en/explanation/gas-waiver). For the full protocol specification (wrapper transaction format, marker address, execution semantics, security model), see [Gas waiver protocol](/en/reference/gas-waiver-api). @@ -204,4 +204,4 @@ WebSocket interface for streaming submissions. Authentication: required (Bearer) - [**Zero gas transactions**](/en/how-to/zero-gas-transactions): See the demo-focused flow and how to verify zero gas on a receipt. - [**Self-hosted Gas Waiver**](/en/how-to/self-hosted-gas-waiver): Run your own waiver without the hosted API. - [**Gas waiver protocol**](/en/reference/gas-waiver-api): Full wrapper transaction spec and governance model. -- [**Stable SDK**](/en/explanation/sdk-overview): Use the typed client to sign user transactions you then submit to the Waiver Server. +- [**Relay with gas waiver**](/en/how-to/relay-with-gas-waiver): Sponsor gas from your own governance-registered waiver with the Enterprise SDK. diff --git a/docs/pages/en/how-to/relay-with-gas-waiver.mdx b/docs/pages/en/how-to/relay-with-gas-waiver.mdx index a41b82d..9bf9671 100644 --- a/docs/pages/en/how-to/relay-with-gas-waiver.mdx +++ b/docs/pages/en/how-to/relay-with-gas-waiver.mdx @@ -153,3 +153,4 @@ See the full [`ErrorCode`](/en/reference/enterprise-sdk#errorcode) table for eve - [**Send guaranteed transactions**](/en/how-to/send-guaranteed-transactions): Land transactions in reserved Enterprise-lane blockspace, and combine it with gas waiver. - [**Enterprise SDK reference**](/en/reference/enterprise-sdk#relay-with-gas-waiver): Every method, config option, and error class in full. - [**Gas waiver**](/en/explanation/gas-waiver): How zero-gas transactions work at the protocol level. +- [**Enable gas-free transactions**](/en/how-to/integrate-gas-waiver): Use Stable's hosted Waiver Server instead of registering your own waiver. diff --git a/docs/pages/en/how-to/self-hosted-gas-waiver.mdx b/docs/pages/en/how-to/self-hosted-gas-waiver.mdx index c054baf..9954e27 100755 --- a/docs/pages/en/how-to/self-hosted-gas-waiver.mdx +++ b/docs/pages/en/how-to/self-hosted-gas-waiver.mdx @@ -16,6 +16,10 @@ This guide covers registering a waiver address, collecting signed user transacti For the hosted Waiver Server API integration path, see [Enable gas-free transactions](/en/how-to/integrate-gas-waiver). +:::tip +`@stablechain/enterprise` does everything below in one call against the same governance-registered waiver. If you're writing TypeScript, use [Relay with gas waiver](/en/how-to/relay-with-gas-waiver) instead of building wrapper transactions by hand. +::: + ## Prerequisites - A waiver address registered on-chain via validator governance. diff --git a/docs/pages/en/reference/gas-waiver-api.mdx b/docs/pages/en/reference/gas-waiver-api.mdx index 73af0a8..341f351 100755 --- a/docs/pages/en/reference/gas-waiver-api.mdx +++ b/docs/pages/en/reference/gas-waiver-api.mdx @@ -137,11 +137,15 @@ Gas Waiver introduces a service dependency if partners route submissions through ## Integration -You integrate by: +Three paths produce the same on-chain result, differing in who holds the waiver key. See [Choosing an integration path](/en/explanation/gas-waiver#choosing-an-integration-path). + +Against the hosted Waiver Server: 1. Collect a signed `InnerTx` from the user (`gasPrice = 0`). 2. Submit the signed inner transaction to the Waiver Server API. -3. Handle streamed results and surfacing transaction hashes to end users. +3. Handle the streamed results and surface transaction hashes to end users. + +From a waiver address you registered yourself, `@stablechain/enterprise` builds, signs, and broadcasts the `WrapperTx` in one call. See [Relay with gas waiver](/en/how-to/relay-with-gas-waiver), or [Self-hosted gas waiver](/en/how-to/self-hosted-gas-waiver) to construct wrappers directly. ## Waiver server @@ -274,4 +278,5 @@ async function createInnerTx(userWallet, contractAddress, callData, nonce) { - [**Zero gas transactions**](/en/how-to/zero-gas-transactions): Demo-focused walkthrough with a receipt showing zero gas fee. - [**Enable gas-free transactions**](/en/how-to/integrate-gas-waiver): Full hosted-API integration guide with batch submissions and error handling. - [**Self-hosted Gas Waiver**](/en/how-to/self-hosted-gas-waiver): Run your own waiver infrastructure without the hosted API. +- [**Relay with gas waiver**](/en/how-to/relay-with-gas-waiver): Sponsor gas from your own waiver with the typed Enterprise SDK client. diff --git a/docs/pages/en/reference/indexers.mdx b/docs/pages/en/reference/indexers.mdx index 208d366..6cc9367 100755 --- a/docs/pages/en/reference/indexers.mdx +++ b/docs/pages/en/reference/indexers.mdx @@ -6,7 +6,7 @@ diataxis: "reference" # Indexers -Indexers, analytics platforms, and blockchain intelligence providers help you query on-chain data, measure activity, monitor transaction risk, and investigate fund flows on Stable. Stable is EVM-compatible, so standard Ethereum indexing tools work seamlessly. +Indexers, analytics platforms, and blockchain intelligence providers help you query on-chain data, measure activity, monitor transaction risk, and investigate fund flows on Stable. Stable is EVM-compatible, so standard Ethereum indexing tools work without modification. This page lists the providers available for indexing, analytics, compliance, and investigations on Stable. @@ -19,6 +19,7 @@ This page lists the providers available for indexing, analytics, compliance, and | [**The Graph**](https://thegraph.com/explorer/participants/indexers) | Indexer | [https://thegraph.com/docs/en/developing/creating-a-subgraph/](https://thegraph.com/docs/en/developing/creating-a-subgraph/) | Build, deploy, and query subgraphs using GraphQL. | | [**Goldsky**](https://goldsky.com/) | Indexer | [https://docs.goldsky.com/introduction](https://docs.goldsky.com/introduction) | High-performance indexing and real-time data streaming. | | [**Ormi Labs**](https://ormilabs.com/) | Indexer | [https://docs.ormilabs.com/subgraphs/quickstart](https://docs.ormilabs.com/subgraphs/quickstart) | Next-gen subgraph indexer with real-time data capabilities. | +| [**SQD**](https://sqd.dev/chains/stable/) | Indexer | [https://docs.sqd.dev/](https://docs.sqd.dev/) | Decoded historical and real-time streams; Stable datasets are by request. | | [**Allium**](https://www.allium.so/) | Analytics / Data Platform | [https://docs.allium.so/](https://docs.allium.so/) | Normalized blockchain datasets & analytics tooling. | | [**CoinMarketCap**](https://coinmarketcap.com/api/) | Market Data Aggregator | [https://coinmarketcap.com/api/documentation/v1/](https://coinmarketcap.com/api/documentation/v1/) | Market prices, listings, and tracking tools. | | [**CoinGecko**](https://www.coingecko.com/en/api) | Market Data Aggregator | [https://docs.coingecko.com/](https://docs.coingecko.com/) | Independent market data with developer APIs. | @@ -98,6 +99,37 @@ High-performance indexing platform with instant subgraphs and developer tooling. For 24/7 support, contact [support@goldsky.com](mailto:support@goldsky.com). +### SQD + +SQD serves Stable data through Portal, an HTTP streaming API that returns decoded, schema-typed tables rather than raw chain state, so you can index without running an archive node. Teams that need custom transforms use the Squid and Pipes SDKs to build an indexer, self-hosted or run on SQD Cloud. + +**Capabilities** + +- Historical and real-time streaming of blocks, transactions, and logs over a single HTTP endpoint +- Decoded, schema-typed tables covering `stable-mainnet` (chain ID 988) and `stable-testnet` (chain ID 2201) +- Squid and Pipes SDKs for custom indexers, with connectors for Postgres, ClickHouse, MongoDB, SQLite, and Parquet +- Blocks are validated by SQD Network workers before they reach the Portal + +:::note +Stable datasets are private on SQD. Access is provisioned by request for enterprise customers through SQD Private Portal, not through the public network. Testnet coverage starts at block 39,381,701 rather than genesis. +::: + +**Docs** + +Read the Stable coverage details, dataset slugs, and endpoints: + +[https://sqd.dev/chains/stable/](https://sqd.dev/chains/stable/) + +Stream decoded data from the Portal: + +[https://docs.sqd.dev/en/portal/evm/quickstart](https://docs.sqd.dev/en/portal/evm/quickstart) + +Build a custom indexer with the Pipes SDK: + +[https://docs.sqd.dev/en/sdk/pipes-sdk/evm/quickstart](https://docs.sqd.dev/en/sdk/pipes-sdk/evm/quickstart) + +**Get started**: [Contact SQD](https://sqd.dev/contact/) to provision access to the Stable datasets, then stream them from the Portal or point an SDK indexer at them. + ## 2. Analytics providers Analytics tools help teams track network activity, real-world payments, dashboards, usage flows, and contract interactions. diff --git a/docs/pages/en/reference/node-operations-overview.mdx b/docs/pages/en/reference/node-operations-overview.mdx index 292d911..834cf7c 100755 --- a/docs/pages/en/reference/node-operations-overview.mdx +++ b/docs/pages/en/reference/node-operations-overview.mdx @@ -1,12 +1,12 @@ --- -title: "Operate" +title: "Run a Stable node" description: "Run a Stable node. Install, configure, monitor, and upgrade." diataxis: "reference" --- -# Operate +# Run a Stable node -Operate covers running a Stable node: full or archive, testnet or mainnet, from install through monitoring. For the chain-level behavior your node enforces (fee model, finality, USDT0 as gas), see [Gas pricing](/en/explanation/gas-pricing), [Finality](/en/explanation/finality), and the [Architecture overview](/en/explanation/core-optimization-overview). +This section covers running a Stable node: full or archive, testnet or mainnet, from install through monitoring. For the chain-level behavior your node enforces (fee model, finality, USDT0 as gas), see [Gas pricing](/en/explanation/gas-pricing), [Finality](/en/explanation/finality), and the [Architecture overview](/en/explanation/core-optimization-overview). ## Quick links diff --git a/docs/pages/ko/explanation/build-overview.mdx b/docs/pages/ko/explanation/build-overview.mdx index e8a19d1..1474a9c 100644 --- a/docs/pages/ko/explanation/build-overview.mdx +++ b/docs/pages/ko/explanation/build-overview.mdx @@ -1,25 +1,25 @@ --- source_path: explanation/build-overview.mdx -source_sha: 4b19d1f913597181cd62426d9b82ef8e91c4fae3 +source_sha: 31130e61141a3d529f2c5ec7281240aa4a155e00 title: "๊ฐœ์š”" -description: "Stable์—์„œ ์ถœ์‹œ: ์ง€๊ฐ‘ ๋ฐ ๊ณ„์ •, ๊ฒฐ์ œ, ์Šค๋งˆํŠธ ๊ณ„์•ฝ ๋ฐ AI ์—์ด์ „ํŠธ. ๋น ๋ฅธ ์‹œ์ž‘์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ๋ฐ”๋กœ ์ด๋™ํ•˜์„ธ์š”." +description: "Stable์—์„œ ๋ฐฐํฌ: ์ง€๊ฐ‘ ๋ฐ ๊ณ„์ •, ๊ฒฐ์ œ, ์Šค๋งˆํŠธ ๊ณ„์•ฝ, AI ์—์ด์ „ํŠธ. ๋น ๋ฅธ ์‹œ์ž‘์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ๋ฐ”๋กœ ์ด๋™ํ•˜์„ธ์š”." diataxis: "explanation" --- # ๊ฐœ์š” -Stable์ด ์ฒ˜์Œ์ด์‹ ๊ฐ€์š”? ๋จผ์ € [๋น ๋ฅธ ์‹œ์ž‘](/ko/tutorial/quick-start)์„ ์‹คํ–‰ํ•˜์„ธ์š”. 5๋ถ„์ด๋ฉด ํ…Œ์ŠคํŠธ๋„ท ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์–ด์„œ ๋‚˜๋จธ์ง€ ํƒญ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Stable์ด ์ฒ˜์Œ์ด์‹ ๊ฐ€์š”? ๋จผ์ € [๋น ๋ฅธ ์‹œ์ž‘](/ko/tutorial/quick-start)์„ ์‹คํ–‰ํ•˜์„ธ์š”. 5๋ถ„์ด๋ฉด ์™„๋ฃŒ๋˜๋ฉฐ ํ…Œ์ŠคํŠธ๋„ท ํŠธ๋žœ์žญ์…˜์„ ์ „์†กํ•˜์—ฌ ๋‚˜๋จธ์ง€ ํƒญ์—์„œ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ## ํƒ์ƒ‰ -- [**๊ณ„์ •**](/ko/explanation/accounts-overview): ์ง€๊ฐ‘์„ ๋งŒ๋“ค๊ณ , EIP-7702๋กœ EOA๋ฅผ ์œ„์ž„ํ•˜๊ณ , ์‚ฌ์šฉ์ž ๋ฐ ์—์ด์ „ํŠธ์˜ ์„ธ์…˜ ํ‚ค๋ฅผ ๋ฒ”์œ„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. -- [**๊ฒฐ์ œ**](/ko/explanation/payments-overview): USDT0๋ฅผ ๋ณด๋‚ด๊ณ , P2P ๋ฐ ๊ตฌ๋… ํ๋ฆ„์„ ๊ตฌ์ถ•ํ•˜๊ณ , ERC-3009๋กœ ์ธ๋ณด์ด์Šค๋ฅผ ์ •์‚ฐํ•˜๊ณ , x402๋กœ API ๊ฐ€๊ฒฉ์„ ์ฑ…์ •ํ•ฉ๋‹ˆ๋‹ค. -- [**๊ณ„์•ฝ**](/ko/explanation/contracts-overview): Solidity ๊ณ„์•ฝ์„ ๋ฐฐํฌํ•˜๊ณ , ํ™•์ธํ•˜๊ณ , ์ธ๋ฑ์‹ฑํ•˜๊ณ , Bank/Distribution/Staking ์‚ฌ์ „ ์ปดํŒŒ์ผ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. -- [**AI ๋ฐ ์—์ด์ „ํŠธ**](/ko/explanation/agent-settlement): MCP ์„œ๋ฒ„๋ฅผ AI ํด๋ผ์ด์–ธํŠธ์— ์—ฐ๊ฒฐํ•˜๊ณ  ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ๊ฐ€ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” x402 ์œ ๋ฃŒ ๋„๊ตฌ๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. +- [**๊ณ„์ •**](/ko/explanation/accounts-overview): ์ง€๊ฐ‘ ์ƒ์„ฑ, EIP-7702๋ฅผ ์‚ฌ์šฉํ•œ EOA ์œ„์ž„, ์‚ฌ์šฉ์ž ๋ฐ ์—์ด์ „ํŠธ์šฉ ์„ธ์…˜ ํ‚ค ๋ฒ”์œ„ ์ง€์ •. +- [**๊ฒฐ์ œ**](/ko/explanation/payments-overview): USDT0 ์ „์†ก, P2P ๋ฐ ๊ตฌ๋… ํ๋ฆ„ ๊ตฌ์ถ•, ERC-3009๋กœ ์ธ๋ณด์ด์Šค ์ •์‚ฐ, x402๋กœ API ๊ฐ€๊ฒฉ ์ฑ…์ •. +- [**๊ณ„์•ฝ**](/ko/explanation/contracts-overview): Solidity ๊ณ„์•ฝ ๋ฐฐํฌ, ํ™•์ธ ๋ฐ ์ธ๋ฑ์‹ฑ, Bank / Distribution / Staking ์‚ฌ์ „ ์ปดํŒŒ์ผ ํ˜ธ์ถœ. +- [**AI ๋ฐ ์—์ด์ „ํŠธ**](/ko/explanation/agent-settlement): MCP ์„œ๋ฒ„๋ฅผ AI ํด๋ผ์ด์–ธํŠธ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์—์ด์ „ํŠธ๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” x402 ์œ ๋ฃŒ ๋„๊ตฌ๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. -## ์—ฌ๊ธฐ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š” +## ์—ฌ๊ธฐ์—์„œ ์‹œ์ž‘ํ•˜์„ธ์š” -- [**๋น ๋ฅธ ์‹œ์ž‘**](/ko/tutorial/quick-start): ํ…Œ์ŠคํŠธ๋„ท์— ์—ฐ๊ฒฐํ•˜๊ณ , ์ง€๊ฐ‘์— ์ž๊ธˆ์„ ์ง€์›ํ•˜๊ณ , ์ฒซ USDT0 ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. -- [**์ฒซ USDT0 ๋ณด๋‚ด๊ธฐ**](/ko/tutorial/send-usdt0): TypeScript ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋™์ผํ•œ ์ž”์•ก์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ฐ ERC-20 ์ „์†ก. -- [**์Šค๋งˆํŠธ ๊ณ„์•ฝ ๋ฐฐํฌ**](/ko/tutorial/smart-contract): Foundry๋ฅผ ์Šค์บํด๋”ฉํ•˜๊ณ , Stable์„ ๊ตฌ์„ฑํ•˜๊ณ , Counter ๊ณ„์•ฝ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. -- [**Stable SDK**](/ko/explanation/sdk-overview): Stable์—์„œ ์ „์†ก, ๋ธŒ๋ฆฌ์ง€ ๋ฐ ์Šค์™‘์„ ์œ„ํ•œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +- [**๋น ๋ฅธ ์‹œ์ž‘**](/ko/tutorial/quick-start): ํ…Œ์ŠคํŠธ๋„ท์— ์—ฐ๊ฒฐํ•˜๊ณ , ์ง€๊ฐ‘์— ์ž๊ธˆ์„ ์ง€์›ํ•˜๊ณ , ์ฒซ USDT0 ํŠธ๋žœ์žญ์…˜์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. +- [**์ฒซ USDT0 ์ „์†ก**](/ko/tutorial/send-usdt0): TypeScript ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋™์ผํ•œ ์ž”์•ก์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ ERC-20 ์ „์†ก. +- [**์Šค๋งˆํŠธ ๊ณ„์•ฝ ๋ฐฐํฌ**](/ko/tutorial/smart-contract): Foundry ์Šค์บํด๋“œ, Stable ๊ตฌ์„ฑ, Counter ๊ณ„์•ฝ ๋ฐฐํฌ. +- [**๋„๊ตฌ ๋ฐ SDK**](/ko/explanation/tools-overview): ์œ ํ˜•์ด ์ง€์ •๋œ TypeScript SDK, ์„œ๋น„์Šค API, MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. diff --git a/docs/pages/ko/explanation/gas-waiver.mdx b/docs/pages/ko/explanation/gas-waiver.mdx index 54b028f..4ac41b0 100755 --- a/docs/pages/ko/explanation/gas-waiver.mdx +++ b/docs/pages/ko/explanation/gas-waiver.mdx @@ -1,61 +1,73 @@ --- source_path: explanation/gas-waiver.mdx -source_sha: a03f510da6c1fe5ab2d31b55c8827b59792af6e0 +source_sha: 73109dcf0f466171e6c0807bb89627d896c640e0 title: "๊ฐ€์Šค ๋ฉด์ œ" -description: "๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‚ฌ์šฉ์ž์˜ ๊ฐ€์Šค๋ฅผ ๋ถ€๋‹ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ์„ ๋ฐ›์€ ๋ฉด์ œ๋Š” ๊ฐ€์Šค ๊ฐ€๊ฒฉ์ด 0์ธ ์„œ๋ช…๋œ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค." +description: "๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฐ€์Šค๋ฅผ ๋ถ€๋‹ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ์„ ๋ฐ›์€ ๋ฉด์ œ๋Š” ๊ฐ€์Šค ๊ฐ€๊ฒฉ์ด 0์ธ ์ƒํƒœ์—์„œ ์„œ๋ช…๋œ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค." diataxis: "explanation" --- # ๊ฐ€์Šค ๋ฉด์ œ -๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ์„ ๋ฐ›์€ ์ฃผ์†Œ(์ดํ•˜ **๋ฉด์ œ ์ฃผ์†Œ**)๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ช…ํ•œ ํŽ˜์ด๋กœ๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ `gasPrice = 0`์œผ๋กœ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” USDT0์„ ๋ณด์œ ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ฐ€์Šค๋ฅผ ์ง€๋ถˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Stable์€ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋กœ ์ด๋Ÿฌํ•œ ๋ฉด์ œ๋ฅผ ์šด์˜ํ•˜๋ฉฐ, ํŒŒํŠธ๋„ˆ๋Š” ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์ž์ฒด ๋ฉด์ œ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ์„ ๋ฐ›์€ ์ฃผ์†Œ(์ดํ•˜ **๋ฉด์ œ์ž**)๋Š” ์‚ฌ์šฉ์ž์˜ ์„œ๋ช…๋œ ํŽ˜์ด๋กœ๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•˜๊ณ , ์ด๋ฅผ `gasPrice = 0`์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” USDT0์„ ๋ณด์œ ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ฐ€์Šค ๋น„์šฉ์„ ์ง€๋ถˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Stable์€ ์ด๋Ÿฌํ•œ ๋ฉด์ œ์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋กœ ์šด์˜ํ•˜๋ฉฐ, ํŒŒํŠธ๋„ˆ๋Š” ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์ž์ฒด ๋ฉด์ œ์ž ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -## ๋™์ž‘ ๋ฐฉ์‹ +## ์ž‘๋™ ๋ฐฉ์‹ ๊ฐ€์Šค ๋ฉด์ œ๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. -1. **์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ `InnerTx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค.** ์‚ฌ์šฉ์ž์˜ ์„œ๋ช…์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณด์กด๋˜๋ฉฐ, ๋ฉด์ œ์ž๋Š” ์œ ํšจ์„ฑ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -2. **๋ฉด์ œ์ž๋Š” `InnerTx`๋ฅผ `WrapperTx`๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค.** ์ด `WrapperTx`๋Š” ํ”„๋กœํ† ์ฝœ ๋งˆ์ปค ์ฃผ์†Œ(`0x000000000000000000000000000000000000f333`)๋กœ `value = 0`, `gasPrice = 0`, ๊ทธ๋ฆฌ๊ณ  ์„œ๋ช…๋œ `InnerTx`๋ฅผ ๋ฐ์ดํ„ฐ ํŽ˜์ด๋กœ๋“œ๋กœ ํ•˜์—ฌ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. -3. **๊ฒ€์ฆ์ž๋Š” ๋งˆ์ปค๋ฅผ ๊ฐ์ง€ํ•˜๊ณ **, ๋ฉด์ œ์ž์˜ ์Šน์ธ ๋ฐ ์ •์ฑ… ์ œ์•ฝ์„ ํ™•์ธํ•œ ํ›„, ์‚ฌ์šฉ์ž์˜ ID(`from`, `nonce`, ํ˜ธ์ถœ ์˜๋ฏธ๋ก )๋กœ ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. +1. **์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ `InnerTx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค.** ์‚ฌ์šฉ์ž์˜ ์„œ๋ช…์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณด์กด๋˜๋ฉฐ, ๋ฉด์ œ์ž๋Š” ์„œ๋ช…์„ ๋ฌดํšจํ™”ํ•˜์ง€ ์•Š๊ณ ๋Š” ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +2. **๋ฉด์ œ์ž๋Š” `InnerTx`๋ฅผ `WrapperTx`๋กœ ๋ž˜ํ•‘ํ•˜์—ฌ** ํ”„๋กœํ† ์ฝœ ๋งˆ์ปค ์ฃผ์†Œ(`0x000000000000000000000000000000000000f333`)๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ `value = 0`, `gasPrice = 0`์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์„œ๋ช…๋œ `InnerTx`๋ฅผ ๋ฐ์ดํ„ฐ ํŽ˜์ด๋กœ๋“œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +3. **๊ฒ€์ฆ์ž๋Š” ๋งˆ์ปค๋ฅผ ๊ฐ์ง€ํ•˜๊ณ ,** ๋ฉด์ œ์ž์˜ ๊ถŒํ•œ ๋ฐ ์ •์ฑ… ์ œ์•ฝ ์กฐ๊ฑด์„ ํ™•์ธํ•œ ํ›„, ์‚ฌ์šฉ์ž์˜ ์‹ ์›( `from`, `nonce`, ํ˜ธ์ถœ ์˜๋ฏธ๋ก )์œผ๋กœ ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. -๊ฐ€์Šค ํšŒ๊ณ„ ์ฒ˜๋ฆฌ๋Š” ๋ฉด์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋‚ด์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ง€๋ถˆํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ž˜ํผ๋„ ์•„๋ฌด๊ฒƒ๋„ ์ง€๋ถˆํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฒ€์ฆ์ž๋Š” ๋ฉด์ œ๋ณ„ ์ •์ฑ…์— ๋”ฐ๋ผ ๋น„์šฉ์„ ๋ถ€๋‹ดํ•ฉ๋‹ˆ๋‹ค. +๊ฐ€์Šค ํšŒ๊ณ„๋Š” ๋ฉด์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ง€๋ถˆํ•˜์ง€ ์•Š๊ณ , ๋ž˜ํผ๋„ ์•„๋ฌด๊ฒƒ๋„ ์ง€๋ถˆํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฒ€์ฆ์ž๋Š” ๋ฉด์ œ๋ณ„ ์ •์ฑ…์— ๋”ฐ๋ผ ๋น„์šฉ์„ ํก์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ## ์Šน์ธ ๋ฐ ์ •์ฑ… -๋ฉด์ œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ์•„๋‹Œ ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค์— ์˜ํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๋ฒ„๋„Œ์Šค๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +๋ฉด์ œ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ์•„๋‹Œ ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค์— ์˜ํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๋ฒ„๋„Œ์Šค๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. -- **๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ ๋“ฑ๋ก**: ๋ชจ๋“  ๋ฉด์ œ ์ฃผ์†Œ๋Š” ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋˜์–ด ์ƒํƒœ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -- **์ฒ ํšŒ**: ๊ฒ€์ฆ์ž๋Š” ์–ธ์ œ๋“ ์ง€ ์˜ค์ž‘๋™ํ•˜๋Š” ๋ฉด์ œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -- **`AllowedTarget`์„ ํ†ตํ•œ ๋ฒ”์œ„ ์ง€์ • ์•ก์„ธ์Šค**: ๊ฐ ๋ฉด์ œ๋Š” ํŠน์ • ๋Œ€์ƒ ๊ณ„์•ฝ ๋ฐ ๋ฉ”์„œ๋“œ ์„ ํƒ์ž ์ง‘ํ•ฉ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์€ ๋‚ด๋ถ€ `to` ์ฃผ์†Œ์™€ ๋ฉ”์„œ๋“œ ์„ ํƒ์ž๊ฐ€ ํ•ด๋‹น ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ž˜ํผ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. +- **๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ ๋“ฑ๋ก**: ๋ชจ๋“  ๋ฉด์ œ์ž ์ฃผ์†Œ๋Š” ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋˜๋ฉฐ ์ƒํƒœ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- **์ฒ ํšŒ**: ๊ฒ€์ฆ์ž๋Š” ์–ธ์ œ๋“ ์ง€ ์˜ค์ž‘๋™ํ•˜๋Š” ๋ฉด์ œ์ž๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- **`AllowedTarget`์„ ํ†ตํ•œ ๋ฒ”์œ„ ์ง€์ • ์•ก์„ธ์Šค**: ๊ฐ ๋ฉด์ œ์ž๋Š” ํŠน์ • ๋Œ€์ƒ ๊ณ„์•ฝ ๋ฐ ๋ฉ”์„œ๋“œ ์„ ํƒ์ž ์ง‘ํ•ฉ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์€ ๋‚ด๋ถ€ `to` ์ฃผ์†Œ ๋ฐ ๋ฉ”์„œ๋“œ ์„ ํƒ์ž๊ฐ€ ํ•ด๋‹น ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ชจ๋“  ๋ž˜ํผ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. -์œ ํšจํ•œ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์€ ๋‹ค์Œ์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +์œ ํšจํ•œ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋ชจ๋‘ ์ถฉ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. - `WrapperTx.to == 0x000000000000000000000000000000000000f333` (๋งˆ์ปค ์ฃผ์†Œ). - `WrapperTx.from`์€ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ์ž์ž…๋‹ˆ๋‹ค. - `WrapperTx.gasPrice == 0` ๋ฐ `InnerTx.gasPrice == 0`. - `WrapperTx.value == 0`. -- `InnerTx.to` ๋ฐ ์ถ”์ถœ๋œ ๋ฉ”์„œ๋“œ ์„ ํƒ์ž๊ฐ€ ๋ฉด์ œ์ž์˜ `AllowedTarget` ์ •์ฑ…์— ์˜ํ•ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. +- `InnerTx.to`์™€ ์ถ”์ถœ๋œ ๋ฉ”์„œ๋“œ ์„ ํƒ์ž๊ฐ€ ๋ฉด์ œ์ž์˜ `AllowedTarget` ์ •์ฑ…์— ์˜ํ•ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. -์–ด๋–ค ์กฐ๊ฑด์ด๋ผ๋„ ์‹คํŒจํ•˜๋ฉด ๊ฒ€์ฆ์ž๋Š” ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ž˜ํผ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. +์–ด๋–ค ์กฐ๊ฑด์ด๋ผ๋„ ์‹คํŒจํ•˜๋ฉด, ๊ฒ€์ฆ์ž๋Š” ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ž˜ํผ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ## ๋ณด์•ˆ ๋ชจ๋ธ -- **์‚ฌ์šฉ์ž ์„œ๋ช… ๋ฌด๊ฒฐ์„ฑ**: ์‚ฌ์šฉ์ž๊ฐ€ `InnerTx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉด์ œ์ž๋Š” ์„œ๋ช… ์œ ํšจ์„ฑ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๋Š” ์—ฌ์ „ํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•œ ํŽ˜์ด๋กœ๋“œ์—๋งŒ ์„œ๋ช…ํ•˜๋„๋ก ๋ณด์žฅํ•  ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค. -- **์˜จ์ฒด์ธ ์Šน์ธ**: ์Šน์ธ์€ ์˜จ์ฒด์ธ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์˜ ์ถœ์ฒ˜์— ๊ด€๊ณ„์—†์ด ๊ฑฐ๋ฒ„๋„Œ์Šค์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ์ฃผ์†Œ๋งŒ ์œ ํšจํ•œ ๋ž˜ํผ ์ œ์ถœ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -- **์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ ๊ฒฝ๊ณ„**: ํŒŒํŠธ๋„ˆ๊ฐ€ Stable์˜ ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•  ๋•Œ, ์ œ์ถœ ๊ฐ€์šฉ์„ฑ์€ ์„œ๋น„์Šค์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€์˜ ์Šน์ธ ๋ณด์žฅ์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- **์‚ฌ์šฉ์ž ์„œ๋ช… ๋ฌด๊ฒฐ์„ฑ**: ์‚ฌ์šฉ์ž๋Š” `InnerTx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉด์ œ์ž๋Š” ์„œ๋ช…์„ ๋ฌดํšจํ™”ํ•˜์ง€ ์•Š๊ณ ๋Š” ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๋Š” ์—ฌ์ „ํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•œ ํŽ˜์ด๋กœ๋“œ์—๋งŒ ์„œ๋ช…ํ•˜๋„๋ก ๋ณด์žฅํ•  ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค. +- **์˜จ์ฒด์ธ ๊ถŒํ•œ ๋ถ€์—ฌ**: ๊ถŒํ•œ ๋ถ€์—ฌ๋Š” ์˜จ์ฒด์ธ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์˜ ์ถœ์ฒ˜์— ๊ด€๊ณ„์—†์ด ๊ฑฐ๋ฒ„๋„Œ์Šค์— ๋“ฑ๋ก๋œ ๋ฉด์ œ์ž ์ฃผ์†Œ๋งŒ ์œ ํšจํ•œ ๋ž˜ํผ ์ œ์ถœ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- **์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ ๊ฒฝ๊ณ„**: ํŒŒํŠธ๋„ˆ๊ฐ€ Stable์˜ ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•  ๋•Œ, ์ œ์ถœ ๊ฐ€์šฉ์„ฑ์€ ์„œ๋น„์Šค์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€์˜ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ณด์ฆ์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ## ๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ -๊ฐ€์Šค ๋ฉด์ œ๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์Šค๋ฅผ ์œ„ํ•ด USDT0์„ ๋ณด์œ ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ชจ๋“  ํ๋ฆ„์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. +๊ฐ€์Šค ๋ฉด์ œ๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์Šค ๋น„์šฉ์œผ๋กœ USDT0์„ ๋ณด์œ ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ชจ๋“  ํ๋ฆ„์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. - ์•„์ง ์Šคํ…Œ์ด๋ธ”์ฝ”์ธ ์ž”์•ก์ด ์—†๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์˜จ๋ณด๋”ฉํ•˜๋Š” ์†Œ๋น„์ž ์•ฑ. -- ์—์ด์ „ํŠธ์˜ ์ง€๊ฐ‘์ด ๊ฐ€์Šค๋ฅผ ์กฐ๋‹ฌํ•˜๋Š” ์—์ด์ „ํŠธ ์ฃผ๋„ ํ๋ฆ„. -- ์šด์˜์ž๊ฐ€ ๋„คํŠธ์›Œํฌ ๋น„์šฉ์„ ํก์ˆ˜ํ•˜๋Š” ๊ธฐ์—… ๊ฒฐ์ œ ๋ ˆ์ผ. +- ์—์ด์ „ํŠธ์˜ ์ง€๊ฐ‘์ด ๊ฐ€์Šค ๋น„์šฉ์„ ๋ถ€๋‹ดํ•˜๋Š” ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ํ๋ฆ„. +- ์šด์˜์ž๊ฐ€ ๋„คํŠธ์›Œํฌ ๋น„์šฉ์„ ํก์ˆ˜ํ•˜๋Š” ๊ธฐ์—… ๊ฒฐ์ œ ์‹œ์Šคํ…œ. -์‚ฌ์šฉ์ž๊ฐ€ USDT0์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์—ฌ๋Ÿฌ ํ˜ธ์ถœ์„ ํ•˜๋‚˜์˜ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฌถ์œผ๋ ค๋Š” ํ๋ฆ„์˜ ๊ฒฝ์šฐ, [EIP-7702 ์œ„์ž„](/ko/reference/eip-7702-api)์„ ์ฐธ์กฐํ•˜์„ธ์š”. +์‚ฌ์šฉ์ž๊ฐ€ USDT0์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์—ฌ๋Ÿฌ ํ˜ธ์ถœ์„ ํ•˜๋‚˜์˜ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฌถ์œผ๋ ค๋Š” ํ๋ฆ„์˜ ๊ฒฝ์šฐ, ๋Œ€์‹  [EIP-7702 ์œ„์ž„](/ko/reference/eip-7702-api)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. + +## ํ†ตํ•ฉ ๊ฒฝ๋กœ ์„ ํƒ + +์„ธ ๊ฐ€์ง€ ๊ฒฝ๋กœ ๋ชจ๋‘ ๋™์ผํ•œ ์˜จ์ฒด์ธ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฉด์ œ์ž ํ‚ค๋ฅผ ๋ˆ„๊ฐ€ ๋ณด์œ ํ•˜๊ณ  ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. + +| ๊ฒฝ๋กœ | ๋ฉด์ œ์ž ํ‚ค๋ฅผ ๋ณด์œ ํ•œ ์ฃผ์ฒด | ์‚ฌ์šฉ ์‹œ๊ธฐ | +| :--- | :--- | :--- | +| [ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„](/ko/how-to/integrate-gas-waiver) | Stable, ๊ทธ๋ฆฌ๊ณ  API ํ‚ค๋กœ ์ธ์ฆ | ๊ฐ€์žฅ ์งง์€ ๊ฒฝ๋กœ๋ฅผ ์›ํ•˜๊ณ  Stable์˜ ์„œ๋น„์Šค์— ์ œ์ถœ์„ ์˜์กดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ. | +| [์—”ํ„ฐํ”„๋ผ์ด์ฆˆ SDK](/ko/how-to/relay-with-gas-waiver) | ๊ท€ํ•˜๊ฐ€ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋“ฑ๋ก | TypeScript์—์„œ ์ž์ฒด ๋ฉด์ œ์ž๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋นŒ๋“œ, ์„œ๋ช… ๋ฐ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋ฅผ ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ. | +| [์ž์ฒด ํ˜ธ์ŠคํŒ… ๋ž˜ํผ](/ko/how-to/self-hosted-gas-waiver) | ๊ท€ํ•˜๊ฐ€ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋“ฑ๋ก | SDK๊ฐ€ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ์–ธ์–ด๋กœ ์ง์ ‘ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ. | + +ํ˜ธ์ŠคํŒ…๋œ ์„œ๋ฒ„๋Š” ๊ท€ํ•˜๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋ฉด์ œ์ž๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์šด์˜ํ•˜๋ฏ€๋กœ `WrapperTx`๋ฅผ ์ง์ ‘ ๊ตฌ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฒฝ๋กœ๋Š” ๋ชจ๋‘ ๊ฑฐ๋ฒ„๋„Œ์Šค์— ๋“ฑ๋ก๋œ ๋ฉด์ œ์ž ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, `@stablechain/enterprise`๋Š” ํ•ด๋‹น ๋ชจ๋ธ์„ ์œ„ํ•œ ์œ ํ˜•ํ™”๋œ ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค. ## ๋‹ค์Œ ๊ถŒ์žฅ ์‚ฌํ•ญ -- [**๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”**](/ko/how-to/integrate-gas-waiver): ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API๋ฅผ API ํ‚ค ์ œ์ถœ ๋ฐ NDJSON ์‘๋‹ต๊ณผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. -- [**๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ**](/ko/reference/gas-waiver-api): ๋งˆ์ปค ๋ผ์šฐํŒ…, ๋ž˜ํผ ํ˜•์‹, ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ๋“ฑ ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘์„ ์ฝ์–ด๋ณด์„ธ์š”. -- [**USDT0์„ ๊ฐ€์Šค๋กœ ์‚ฌ์šฉ**](/ko/explanation/usdt-as-gas-token): ๋ฉด์ œ๊ฐ€ ์ ์šฉ๋˜๋Š” ๊ฐ€์Šค ํ† ํฐ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. +- [**๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”**](/ko/how-to/integrate-gas-waiver): API ํ‚ค ์ œ์ถœ ๋ฐ NDJSON ์‘๋‹ต์„ ํ†ตํ•ด ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API๋ฅผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. +- [**๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ**](/ko/reference/gas-waiver-api): ๋งˆ์ปค ๋ผ์šฐํŒ…, ๋ž˜ํผ ํ˜•์‹, ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘์„ ์ฝ์–ด๋ณด์‹ญ์‹œ์˜ค. +- [**๊ฐ€์Šค ํ† ํฐ์œผ๋กœ์„œ์˜ USDT0**](/ko/explanation/usdt-as-gas-token): ๋ฉด์ œ์ž๊ฐ€ ์ปค๋ฒ„ํ•˜๋Š” ๊ฐ€์Šค ํ† ํฐ์„ ์ดํ•ดํ•˜์‹ญ์‹œ์˜ค. diff --git a/docs/pages/ko/explanation/tools-overview.mdx b/docs/pages/ko/explanation/tools-overview.mdx new file mode 100644 index 0000000..94f2695 --- /dev/null +++ b/docs/pages/ko/explanation/tools-overview.mdx @@ -0,0 +1,41 @@ +--- +source_path: explanation/tools-overview.mdx +source_sha: 6eecb794f859527309d0c200ea29e33c6223cb74 +title: "๋„๊ตฌ ๋ฐ SDK" +description: "์•ˆ์ •์ ์ธ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜์„ธ์š”: ์œ ํ˜•์ด ์ง€์ •๋œ TypeScript SDK, ๊ฐ€์Šค ๋ฉด์ œ ๋ฐ EIP-7702 ์„œ๋น„์Šค API, AI ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ MCP ์„œ๋ฒ„." +diataxis: "explanation" +--- + +# ๋„๊ตฌ ๋ฐ SDK + +Stable์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. Stable์—์„œ ์ œํ’ˆ์„ ๊ตฌ์ถ•ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? [Stable SDK](/ko/explanation/sdk-overview)๋กœ ์‹œ์ž‘ํ•˜๊ณ , SDK๊ฐ€ ๋ž˜ํ•‘ํ•˜์ง€ ์•Š๋Š” ๋ ˆ์ผ์ด ํ•„์š”ํ•  ๋•Œ ์„œ๋น„์Šค API๋กœ ๋‚ด๋ ค๊ฐ€์„ธ์š”. ๊ฐ€์Šค๋ฅผ ํ›„์›ํ•˜๊ฑฐ๋‚˜ ๋ฐฑ์—”๋“œ์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์ค‘๊ณ„ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? [Enterprise SDK](/ko/explanation/enterprise-sdk)๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. Stable์„ AI ํŽธ์ง‘๊ธฐ ๋˜๋Š” ์—์ด์ „ํŠธ์— ์—ฐ๊ฒฐํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? [AI๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ](/ko/how-to/develop-with-ai)๋กœ ์ด๋™ํ•˜์„ธ์š”. + +## SDK๋กœ ๊ตฌ์ถ•ํ•˜๊ธฐ + +- [**Stable SDK**](/ko/explanation/sdk-overview): `@stablechain/sdk`, ์ „์†ก, ๋ธŒ๋ฆฟ์ง€, ์Šค์™‘ ๋ฐ ๋ณผํŠธ ์ˆ˜์ต๋ฅ ์„ ์œ„ํ•œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํด๋ผ์ด์–ธํŠธ. viem์„ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ผ์šฐํŒ…, ์Šน์ธ, ์†Œ์ˆ˜์  ๋ฐ ์ฒด์ธ ์ „ํ™˜์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +- [**SDK ๋น ๋ฅธ ์‹œ์ž‘**](/ko/tutorial/sdk-quickstart): ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋„ท์—์„œ ์ฒซ USDT0 ์ „์†ก์„ ๋ณด๋‚ด๊ณ , ๋ฉ”์ธ๋„ท ๋ธŒ๋ฆฟ์ง€ ๊ฒฌ์ ์„ ๋ฏธ๋ฆฌ ๋ด…๋‹ˆ๋‹ค. +- [**SDK ์ฐธ์กฐ**](/ko/reference/sdk): `createStable`, `createStableReader`, ์ „์†ก, ๋ธŒ๋ฆฟ์ง€, ์Šค์™‘ ๋ฐ ์ˆ˜์ต ๋ฉ”์„œ๋“œ, ์—ด๊ฑฐํ˜• ๋ฐ ์˜ค๋ฅ˜ ํด๋ž˜์Šค. +- [**Enterprise SDK**](/ko/explanation/enterprise-sdk): `@stablechain/enterprise`, ๊ฐ€์Šค ๋ฉด์ œ ํŠธ๋žœ์žญ์…˜ ๋ฐ ์˜ˆ์•ฝ๋œ Enterprise-๋ ˆ์ธ ๋ธ”๋ก ๊ณต๊ฐ„์„ ์œ„ํ•œ ์„œ๋ฒ„ ์ธก ํด๋ผ์ด์–ธํŠธ. +- [**Enterprise SDK ์ฐธ์กฐ**](/ko/reference/enterprise-sdk): `createStableEnterprise`, ๋‘ ๋ ˆ์ผ, ๋นŒ๋“œ ๋„์šฐ๋ฏธ ๋ฐ ์˜ค๋ฅ˜ ํด๋ž˜์Šค. + +## ์Šคํƒ๊ณผ ํ•จ๊ป˜ SDK ์‚ฌ์šฉํ•˜๊ธฐ + +- [**viem**](/ko/how-to/sdk-with-viem): ์„ธ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค: ๊ฐœ์ธ ํ‚ค ๊ณ„์ •, ๋ธŒ๋ผ์šฐ์ € ์ „์†ก ๋˜๋Š” ์‚ฌ์ „ ๊ตฌ์ถ•๋œ viem WalletClient. +- [**wagmi**](/ko/how-to/sdk-with-wagmi): `useWalletClient`, `useAccount` ๋ฐ `useChainId`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SDK๋ฅผ React ์•ฑ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. +- [**์ˆ˜์ต ์ฐฝ์ถœ**](/ko/how-to/earn-yield): Morpho ๋ณผํŠธ์— USDT0๋ฅผ ์˜ˆ์น˜ํ•˜๊ณ , APY ๋ฐ ํฌ์ง€์…˜์„ ์ฝ๊ณ , ์ธ์ถœํ•˜๊ณ , Merkl ๋ณด์ƒ์„ ์ฒญ๊ตฌํ•ฉ๋‹ˆ๋‹ค. + +## ์„œ๋น„์Šค API + +- [**๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ**](/ko/reference/gas-waiver-api): ํŠธ๋žœ์žญ์…˜ ํ˜•์‹, ๋งˆ์ปค ๋ผ์šฐํŒ…, ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ๋ฐ ์„œ๋ช…๋œ `InnerTx` ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” Waiver Server API. +- [**EIP-7702**](/ko/reference/eip-7702-api): EOA์˜ ๊ณ„์ • ์ฝ”๋“œ๋ฅผ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์œผ๋กœ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ์œ„์ž„ ํŠธ๋žœ์žญ์…˜ ํ˜•์‹ ๋ฐ RPC ๋™์ž‘. + +## AI ๋ฐ ์—์ด์ „ํŠธ ๋„๊ตฌ + +- [**AI๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ**](/ko/how-to/develop-with-ai): Docs MCP ๋ฐ Runtime MCP ์„œ๋ฒ„๋ฅผ ๋ชจ๋“  MCP ํ˜ธํ™˜ ํด๋ผ์ด์–ธํŠธ์— ์ถ”๊ฐ€ํ•˜๊ณ , MCP๊ฐ€ ์—†๋Š” ๋„๊ตฌ๋ฅผ ์œ„ํ•œ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋ฌธ์„œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +- [**MCP ์„œ๋ฒ„๋กœ ๊ฒฐ์ œํ•˜๊ธฐ**](/ko/how-to/pay-with-mcp): x402 ๊ฒฐ์ œ API๋ฅผ MCP ๋„๊ตฌ๋กœ ๋…ธ์ถœํ•˜์—ฌ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. + +## ๋‹ค์Œ ๋‹จ๊ณ„ + +- [**๋น ๋ฅธ ์‹œ์ž‘**](/ko/tutorial/quick-start): ํ…Œ์ŠคํŠธ๋„ท์— ์—ฐ๊ฒฐํ•˜๊ณ , ์ง€๊ฐ‘์— ์ž๊ธˆ์„ ์ง€์›ํ•˜๊ณ , ์ฒซ USDT0 ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. +- [**JSON-RPC API**](/ko/reference/json-rpc-api): `eth`, `net`, `web3` ๋ฐ `debug` ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ง€์›๋˜๋Š” ๋ฉ”์„œ๋“œ. +- [**๊ตฌ์ถ•**](/ko/explanation/build-overview): ๊ณ„์ •, ๊ฒฐ์ œ, ๊ณ„์•ฝ ๋ฐ ์—์ด์ „ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋‚ด์šฉ๋ณ„๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. diff --git a/docs/pages/ko/how-to/integrate-gas-waiver.mdx b/docs/pages/ko/how-to/integrate-gas-waiver.mdx index 01796ac..1f86e16 100644 --- a/docs/pages/ko/how-to/integrate-gas-waiver.mdx +++ b/docs/pages/ko/how-to/integrate-gas-waiver.mdx @@ -1,27 +1,27 @@ --- source_path: how-to/integrate-gas-waiver.mdx -source_sha: eaaf45d02173e1ce6279849d803d73014dbb7696 +source_sha: 29f1288293527b18488a9e502ed114dca6f9c690 title: "๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”" -description: "์„œ๋ช…๋œ InnerTx ํŽ˜์ด๋กœ๋“œ๋ฅผ Waiver Server API์— ์ œ์ถœํ•˜์—ฌ Stable Gas Waiver๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค." +description: "์„œ๋ช…๋œ InnerTx ํŽ˜์ด๋กœ๋“œ๋ฅผ Waiver Server API์— ์ œ์ถœํ•˜์—ฌ Stable ๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ํ†ตํ•ฉํ•˜๊ณ  ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜์„ ํ™œ์„ฑํ™”ํ•˜์„ธ์š”." diataxis: "how-to" --- # ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™” -Gas Waiver๋Š” Stable์—์„œ ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Gas Waiver๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๊ฐ€์Šค ์š”๊ธˆ์„ ์ง€๋ถˆํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์Šค ๋น„์šฉ์œผ๋กœ USDT0๋ฅผ ๋ณด์œ ํ•˜์ง€ ์•Š๊ณ ๋„ ์ปจํŠธ๋ž™ํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ฐ€์Šค ๋ฉด์ œ๋Š” Stable์—์„œ ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๊ฐ€์Šค ์š”๊ธˆ์„ ๋ถ€๋‹ดํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์Šค ๋น„์šฉ์œผ๋กœ USDT0๋ฅผ ๋ณด์œ ํ•  ํ•„์š” ์—†์ด ๊ณ„์•ฝ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Waiver Server API๋ฅผ ํ†ตํ•ด ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. +์ด ๊ฐ€์ด๋“œ๋Š” Stable์ด ๋ฉด์ œ๋ฅผ ์šด์˜ํ•˜๊ณ  API ํ‚ค๋กœ ์ธ์ฆํ•˜๋Š” ํ˜ธ์ŠคํŒ…๋œ Waiver Server API๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋Œ€์‹  ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์ž์ฒด ๋ฉด์ œ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๋ ค๋ฉด [ํ†ตํ•ฉ ๊ฒฝ๋กœ ์„ ํƒ](/ko/explanation/gas-waiver#choosing-an-integration-path)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. :::note -**๊ฐœ๋…:** Gas Waiver๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์™œ ์กด์žฌํ•˜๋Š”์ง€, ๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ๋œ Waiver๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” [Gas waiver](/ko/explanation/gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘(๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ํ˜•์‹, ๋งˆ์ปค ์ฃผ์†Œ, ์‹คํ–‰ ์˜๋ฏธ ์ฒด๊ณ„, ๋ณด์•ˆ ๋ชจ๋ธ)์— ๋Œ€ํ•ด์„œ๋Š” [Gas waiver protocol](/ko/reference/gas-waiver-api)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. +**๊ฐœ๋…:** ๊ฐ€์Šค ๋ฉด์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์™œ ์กด์žฌํ•˜๋Š”์ง€, ๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ ๋ฉด์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๊ฐ€์Šค ๋ฉด์ œ](/ko/explanation/gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘(๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ํ˜•์‹, ๋งˆ์ปค ์ฃผ์†Œ, ์‹คํ–‰ ์˜๋ฏธ ์ฒด๊ณ„, ๋ณด์•ˆ ๋ชจ๋ธ)์€ [๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ](/ko/reference/gas-waiver-api)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ::: -## ํ•„์ˆ˜ ์กฐ๊ฑด +## ์ „์ œ ์กฐ๊ฑด -- Stable ํŒ€์ด ๋ฐœ๊ธ‰ํ•œ Waiver Server์šฉ API ํ‚ค -- ๋Œ€์ƒ ์ปจํŠธ๋ž™ํŠธ ์ฃผ์†Œ๋Š” Waiver์˜ `AllowedTarget` ์ •์ฑ…์— ๋“ฑ๋ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +- Stable ํŒ€์—์„œ ๋ฐœ๊ธ‰ํ•œ Waiver ์„œ๋ฒ„์šฉ API ํ‚ค +- ๋Œ€์ƒ ๊ณ„์•ฝ ์ฃผ์†Œ๋Š” ๋ฉด์ œ์˜ `AllowedTarget` ์ •์ฑ…์— ๋“ฑ๋ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -## Waiver Server +## Waiver ์„œ๋ฒ„ **๊ธฐ๋ณธ URL:** @@ -34,19 +34,19 @@ Gas Waiver๋Š” Stable์—์„œ ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํ†ตํ•ฉ ํ๋ฆ„์€ ์„ธ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. -1. **InnerTx ๋นŒ๋“œ**: ์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. -2. **Waiver Server์— ์ œ์ถœ**: ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์„ Waiver Server API์— ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. -3. **์‘๋‹ต ์ฒ˜๋ฆฌ**: Waiver Server๊ฐ€ ํŠธ๋žœ์žญ์…˜์„ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆฌ๋ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. +1. **InnerTx ๋นŒ๋“œ**: ์‚ฌ์šฉ์ž๊ฐ€ `gasPrice = 0`์œผ๋กœ ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. +2. **Waiver ์„œ๋ฒ„์— ์ œ์ถœ**: ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์„ Waiver Server API์— ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. +3. **์‘๋‹ต ์ฒ˜๋ฆฌ**: ๋ฉด์ œ ์„œ๋ฒ„๊ฐ€ ํŠธ๋žœ์žญ์…˜์„ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆฌ๋ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. -## 1๋‹จ๊ณ„: ์‚ฌ์šฉ์ž์˜ InnerTx ์ƒ์„ฑ +## 1๋‹จ๊ณ„: ์‚ฌ์šฉ์ž InnerTx ์ƒ์„ฑ -์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ ํ‘œ์ค€ ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. `to` ์ฃผ์†Œ์™€ ๋ฉ”์„œ๋“œ ์„ ํƒ๊ธฐ๋Š” Waiver์˜ `AllowedTarget` ์ •์ฑ…์— ์˜ํ•ด ํ—ˆ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ ํ‘œ์ค€ ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. `to` ์ฃผ์†Œ์™€ ๋ฉ”์„œ๋“œ ์„ ํƒ๊ธฐ๋Š” ๋ฉด์ œ์˜ `AllowedTarget` ์ •์ฑ…์— ์˜ํ•ด ํ—ˆ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ```typescript // config.ts export const CONFIG = { RPC_URL: "https://rpc.testnet.stable.xyz", - CHAIN_ID: 2201, // ๋ฉ”์ธ๋„ท์˜ ๊ฒฝ์šฐ 988 + CHAIN_ID: 2201, // 988 for mainnet WAIVER_SERVER: "https://waiver.testnet.stable.xyz", USDT0_ADDRESS: "0x78Cf24370174180738C5B8E352B6D14c83a6c9A9", }; @@ -88,10 +88,10 @@ const signedInnerTx = await userWallet.signTransaction(innerTx); ``` :::warning -`gasPrice`๋Š” `0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ Waiver Server๋Š” ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. +`gasPrice`๋Š” `0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 0์ด ์•„๋‹ˆ๋ฉด ๋ฉด์ œ ์„œ๋ฒ„์—์„œ ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ::: -## 2๋‹จ๊ณ„: Waiver Server์— ์ œ์ถœ +## 2๋‹จ๊ณ„: Waiver ์„œ๋ฒ„์— ์ œ์ถœ ```typescript import { CONFIG } from "./config"; @@ -112,7 +112,7 @@ const response = await fetch(`${CONFIG.WAIVER_SERVER}/v1/submit`, { ### ๋ฐฐ์น˜ ์ œ์ถœ -๋‹จ์ผ ์š”์ฒญ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๋‹จ์ผ ์š”์ฒญ์œผ๋กœ ์—ฌ๋Ÿฌ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ```typescript body: JSON.stringify({ @@ -120,11 +120,11 @@ body: JSON.stringify({ }) ``` -๊ฐ ๊ฒฐ๊ณผ ์ค„์—๋Š” ๋ฐฐ์—ด ๋‚ด ํŠธ๋žœ์žญ์…˜์˜ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” `index` ํ•„๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. +๊ฐ ๊ฒฐ๊ณผ ๋ผ์ธ์—๋Š” ๋ฐฐ์—ด์—์„œ ํŠธ๋žœ์žญ์…˜์˜ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” `index` ํ•„๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ## 3๋‹จ๊ณ„: ์‘๋‹ต ์ฒ˜๋ฆฌ -์‘๋‹ต์€ NDJSON(์ค„๋ฐ”๊ฟˆ์œผ๋กœ ๊ตฌ๋ถ„๋œ JSON)์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ค„์€ ์ œ์ถœ๋œ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. +์‘๋‹ต์€ NDJSON (์ค„ ๋ฐ”๊ฟˆ์œผ๋กœ ๊ตฌ๋ถ„๋œ JSON)์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ค„์€ ์ œ์ถœ๋œ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ```typescript const reader = response.body.getReader(); @@ -162,16 +162,16 @@ while (true) { | **์ฝ”๋“œ** | **์„ค๋ช…** | | :--- | :--- | -| `PARSE_ERROR` | ํŠธ๋žœ์žญ์…˜ ๊ตฌ๋ฌธ ๋ถ„์„ ์‹คํŒจ | +| `PARSE_ERROR` | ํŠธ๋žœ์žญ์…˜ ํŒŒ์‹ฑ ์‹คํŒจ | | `INVALID_REQUEST` | ์ž˜๋ชป๋œ ์š”์ฒญ ๋ณธ๋ฌธ | | `BATCH_SIZE_EXCEEDED` | ๋ฐฐ์น˜ ํฌ๊ธฐ๊ฐ€ ํ—ˆ์šฉ๋œ ์ตœ๋Œ€์น˜๋ฅผ ์ดˆ๊ณผํ•จ | -| `VALIDATION_FAILED` | ํŠธ๋žœ์žญ์…˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์‹คํŒจ (์˜ˆ: ์œ ํšจํ•˜์ง€ ์•Š์€ ์„œ๋ช…, ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๋Œ€์ƒ) | -| `BROADCAST_FAILED` | ์ฒด์ธ์œผ๋กœ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์‹คํŒจ | +| `VALIDATION_FAILED` | ํŠธ๋žœ์žญ์…˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์‹คํŒจ (์˜ˆ: ์ž˜๋ชป๋œ ์„œ๋ช…, ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๋Œ€์ƒ) | +| `BROADCAST_FAILED` | ์ฒด์ธ์— ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์‹คํŒจ | | `RATE_LIMITED` | ์†๋„ ์ œํ•œ ์ดˆ๊ณผ | -| `QUEUE_FULL` | ์„œ๋ฒ„ ํ๊ฐ€ ์šฉ๋Ÿ‰์— ๋„๋‹ฌํ•จ | +| `QUEUE_FULL` | ์„œ๋ฒ„ ํ๊ฐ€ ๊ฐ€๋“ ์ฐธ | | `TIMEOUT` | ์š”์ฒญ ์‹œ๊ฐ„ ์ดˆ๊ณผ | -## API ๋ ˆํผ๋Ÿฐ์Šค +## API ์ฐธ์กฐ ### GET `/v1/health` @@ -195,15 +195,15 @@ while (true) { ์ŠคํŠธ๋ฆฌ๋ฐ ์ œ์ถœ์„ ์œ„ํ•œ WebSocket ์ธํ„ฐํŽ˜์ด์Šค. ์ธ์ฆ: ํ•„์ˆ˜ (Bearer). -## ์š”์  +## ์ฃผ์š” ์š”์  -- Gas Waiver๋Š” ์„œ๋ฒ„ ์ธก ํ†ตํ•ฉ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๊ฐ€ ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์„ Waiver Server์— ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” Waiver Server์™€ ์ง์ ‘ ์ƒํ˜ธ ์ž‘์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -- ์‚ฌ์šฉ์ž๋Š” ํ•ญ์ƒ InnerTx์— ์„œ๋ช…ํ•˜์—ฌ ์„œ๋ช… ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. Waiver๋Š” ์‚ฌ์šฉ์ž์˜ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -- ๋Œ€์ƒ ์ปจํŠธ๋ž™ํŠธ๋Š” Waiver์˜ `AllowedTarget` ๋ชฉ๋ก์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +- ๊ฐ€์Šค ๋ฉด์ œ๋Š” ์„œ๋ฒ„ ์ธก ํ†ตํ•ฉ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๊ฐ€ ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์„ Waiver ์„œ๋ฒ„์— ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” Waiver ์„œ๋ฒ„์™€ ์ง์ ‘ ์ƒํ˜ธ ์ž‘์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- ์‚ฌ์šฉ์ž๋Š” ํ•ญ์ƒ InnerTx์— ์„œ๋ช…ํ•˜์—ฌ ์„œ๋ช… ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ฉด์ œ๋Š” ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +- ๋Œ€์ƒ ๊ณ„์•ฝ์€ ๋ฉด์ œ์˜ `AllowedTarget` ๋ชฉ๋ก์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -## ๋‹ค์Œ์— ๊ถŒ์žฅ๋˜๋Š” ๋‚ด์šฉ +## ๋‹ค์Œ ๊ถŒ์žฅ ์‚ฌํ•ญ -- [**์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜**](/ko/how-to/zero-gas-transactions): ๋ฐ๋ชจ ์ค‘์‹ฌ ํ๋ฆ„๊ณผ ์˜์ˆ˜์ฆ์—์„œ ์ œ๋กœ ๊ฐ€์Šค๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. -- [**์…€ํ”„ ํ˜ธ์ŠคํŒ… Gas Waiver**](/ko/how-to/self-hosted-gas-waiver): ํ˜ธ์ŠคํŒ…๋œ API ์—†์ด ์ž์ฒด Waiver๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. -- [**Gas Waiver ํ”„๋กœํ† ์ฝœ**](/ko/reference/gas-waiver-api): ์ „์ฒด ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ์‚ฌ์–‘ ๋ฐ ๊ฑฐ๋ฒ„๋„Œ์Šค ๋ชจ๋ธ. -- [**Stable SDK**](/ko/explanation/sdk-overview): ์œ ํ˜•์ด ์ง€์ •๋œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Waiver Server์— ์ œ์ถœํ•  ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. +- [**์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜**](/ko/how-to/zero-gas-transactions): ๋ฐ๋ชจ ์ค‘์‹ฌ ํ๋ฆ„๊ณผ ์˜ ๊ฐ€์Šค๋ฅผ ์˜์ˆ˜์ฆ์—์„œ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”. +- [**์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ**](/ko/how-to/self-hosted-gas-waiver): ํ˜ธ์ŠคํŒ…๋œ API ์—†์ด ์ž์ฒด ๋ฉด์ œ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”. +- [**๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ**](/ko/reference/gas-waiver-api): ์ „์ฒด ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ์‚ฌ์–‘ ๋ฐ ๊ฑฐ๋ฒ„๋„Œ์Šค ๋ชจ๋ธ. +- [**๊ฐ€์Šค ๋ฉด์ œ๋กœ ๋ฆด๋ ˆ์ด**](/ko/how-to/relay-with-gas-waiver): Enterprise SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๊ฑฐ๋ฒ„๋„Œ์Šค ๋“ฑ๋ก ๋ฉด์ œ์—์„œ ๊ฐ€์Šค๋ฅผ ํ›„์›ํ•˜์„ธ์š”. diff --git a/docs/pages/ko/how-to/relay-with-gas-waiver.mdx b/docs/pages/ko/how-to/relay-with-gas-waiver.mdx index 6ddcff9..8e3dfa2 100644 --- a/docs/pages/ko/how-to/relay-with-gas-waiver.mdx +++ b/docs/pages/ko/how-to/relay-with-gas-waiver.mdx @@ -1,29 +1,29 @@ --- source_path: how-to/relay-with-gas-waiver.mdx -source_sha: a41b82da40c922244690f2e8e05d8f9ad1f34a99 +source_sha: 9bf96718a01faa7e956c91ad7f931816b6bc544e title: "๊ฐ€์Šค ๋ฉด์ œ ๋ฆด๋ ˆ์ด" -description: "Enterprise SDK๋กœ ์‚ฌ์šฉ์ž ๊ฐ€์Šค ์ง€์›: ์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด, ๋ฐฐ์น˜ ๋ฆด๋ ˆ์ด, ์ •์ฑ… ์ œํ•œ ์ ์šฉ, ๋ฏธ๋ฆฌ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด." +description: "Enterprise SDK๋กœ ์‚ฌ์šฉ์ž์˜ ๊ฐ€์Šค ์š”๊ธˆ์„ ํ›„์›ํ•˜์„ธ์š”: ์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด, ๋ฐฐ์น˜ ๋ฆด๋ ˆ์ด, ์ •์ฑ… ํ•œ๋„ ์ ์šฉ, ์‚ฌ์ „ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด." diataxis: "how-to" --- # ๊ฐ€์Šค ๋ฉด์ œ ๋ฆด๋ ˆ์ด -`@stablechain/enterprise`๋กœ ์‚ฌ์šฉ์ž ๊ฐ€์Šค๋ฅผ ์ง€์›ํ•˜์„ธ์š”. ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ๊ณ„์ •์€ ์‚ฌ์šฉ์ž์˜ ์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜(InnerTx)์„ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ USDT0๋ฅผ ๋ณด์œ ํ•˜์ง€ ์•Š๊ณ ๋„ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. `gasWaiver` ๋ชจ๋“ˆ์€ ๋นŒ๋“œ, ์„œ๋ช… ๋ฐ ๋ฆด๋ ˆ์ด๋ฅผ ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์ž‘์—…๋‹น ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. +`@stablechain/enterprise`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ๊ฐ€์Šค๋ฅผ ํ›„์›ํ•˜์„ธ์š”. ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ๊ณ„์ •์€ ์‚ฌ์šฉ์ž์˜ ์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜(InnerTx)์„ ๋ž˜ํ•‘ํ•˜์—ฌ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๋Š” USDT0๋ฅผ ๋ณด์œ ํ•˜์ง€ ์•Š๊ณ ๋„ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `gasWaiver` ๋ชจ๋“ˆ์€ ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ๋นŒ๋“œ, ์„œ๋ช… ๋ฐ ๋ฆด๋ ˆ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, ๊ฐ ์ž‘์—…๋‹น ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. -๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ „๋‹ฌํ•œ ๋ž˜ํผ๊ฐ€ ์•„๋‹Œ, ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์˜ ํ•ด์‹œ์ธ `H_inner`๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. +๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์šฉ์ž์˜ ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ์ธ `H_inner`๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ด๋ฅผ ์ „๋‹ฌํ•œ ๋ž˜ํผ๋Š” ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ## ์ „์ œ ์กฐ๊ฑด -- Node.js 20 ์ด์ƒ, `@stablechain/enterprise` ๋ฐ `viem` ์„ค์น˜. [Enterprise SDK ์ฐธ์กฐ](/ko/reference/enterprise-sdk#install)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. -- ๊ฑฐ๋ฒ„๋„Œ์Šค์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ํ‚ค. Enterprise SDK๋Š” Stable Mainnet ๋ฐ Stable Testnet์—์„œ ์‹คํ–‰๋˜๋ฉฐ ์•ก์„ธ์Šค๋Š” ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ํ‚ค๋ฅผ ์–ป์œผ๋ ค๋ฉด [Stable์— ๋ฌธ์˜](https://discord.gg/stablexyz)ํ•˜์„ธ์š”. +- Node.js 20 ์ด์ƒ, ๊ทธ๋ฆฌ๊ณ  `@stablechain/enterprise`์™€ `viem`์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. [Enterprise SDK ์ฐธ์กฐ](/ko/reference/enterprise-sdk#install)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. +- ๊ฑฐ๋ฒ„๋„Œ์Šค์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ํ‚ค. Enterprise SDK๋Š” Stable Mainnet ๋ฐ Stable Testnet์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ์•ก์„ธ์Šค๊ฐ€ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ํ‚ค๋ฅผ ๋ฐ›์œผ๋ ค๋ฉด [Stable์— ๋ฌธ์˜](https://discord.gg/stablexyz)ํ•˜์„ธ์š”. :::warning -์ด๊ฒƒ์€ ๊ฐœ์ธ ํ‚ค๋กœ ์„œ๋ช…ํ•˜๋Š” ์„œ๋ฒ„ ์ธก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ฉด์ œ ํ‚ค๋Š” ๋ฐฑ์—”๋“œ์— ๋ณด๊ด€ํ•˜์‹ญ์‹œ์˜ค. +์ด๊ฒƒ์€ ๊ฐœ์ธ ํ‚ค๋กœ ์„œ๋ช…ํ•˜๋Š” ์„œ๋ฒ„ ์ธก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ฉด์ œ ํ‚ค๋Š” ๋ฐฑ์—”๋“œ์— ๋ณด๊ด€ํ•˜์„ธ์š”. ::: ## 1. ๊ฐ€์Šค ๋ฉด์ œ ๋ชจ๋“ˆ๋กœ ํด๋ผ์ด์–ธํŠธ ์ƒ์„ฑ -`createStableEnterprise`์— `gasWaiver: { account }`๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ `account`๋Š” ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ํ‚ค์ž…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ๊ตฌ์„ฑํ•  ๋•Œ๋งŒ ํด๋ผ์ด์–ธํŠธ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. +`gasWaiver: { account }`๋ฅผ `createStableEnterprise`์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ `account`๋Š” ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ํ‚ค์ž…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ๊ตฌ์„ฑํ•  ๋•Œ๋งŒ ํด๋ผ์ด์–ธํŠธ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ```ts import { createStableEnterprise, stable } from "@stablechain/enterprise"; @@ -44,12 +44,12 @@ StableEnterpriseClient { gasWaiver, guaranteedBlock: undefined, guaranteedWaiver `rpcEndpoints` ์˜ต์…˜์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ์ฒด์ธ์˜ ๋‚ด์žฅ RPC๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. :::tip -๋ฉด์ œ ํ‚ค๋ฅผ ๋ณด๊ด€ ๋ฐฑ์—”๋“œ์— ๋ณด๊ด€ํ•˜๋ ค๋ฉด `account` ๋Œ€์‹  `signer`๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”. `@stablechain/enterprise/aws-kms`์˜ `awsKmsSigner`๋Š” AWS KMS๋กœ ์ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. [์„œ๋ช… ํ‚ค ๋ฐ ๋ณด๊ด€](/ko/reference/enterprise-sdk#signing-keys-and-custody)์„ ์ฐธ์กฐํ•˜์„ธ์š”. +๋ฉด์ œ ํ‚ค๋ฅผ ๋ณด๊ด€ ๋ฐฑ์—”๋“œ์— ์œ ์ง€ํ•˜๋ ค๋ฉด `account` ๋Œ€์‹  `signer`๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”. `@stablechain/enterprise/aws-kms`์˜ `awsKmsSigner`๋Š” AWS KMS๋กœ ์ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. [์„œ๋ช… ํ‚ค ๋ฐ ๋ณด๊ด€](/ko/reference/enterprise-sdk#signing-keys-and-custody)์„ ์ฐธ์กฐํ•˜์„ธ์š”. ::: ## 2. ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด -์‚ฌ์šฉ์ž ๊ณ„์ •๊ณผ ๋ณ€๊ฒฝ๋˜๋Š” ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `send`๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. `gasPrice: 0`, ๋ ˆ๊ฑฐ์‹œ ์œ ํ˜•, `chainId` ๋ฐ ๋ณด๋ฅ˜ ์ค‘์ธ nonce๋Š” ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ `to`๋งŒ ์ „๋‹ฌํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ `data`, `value`, `gas`๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. +์‚ฌ์šฉ์ž ๊ณ„์ •๊ณผ ๊ฐ€๋ณ€ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `send`๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. `gasPrice: 0`, ๋ ˆ๊ฑฐ์‹œ ์œ ํ˜•, `chainId`, ๊ทธ๋ฆฌ๊ณ  ๋ณด๋ฅ˜ ์ค‘์ธ nonce๋Š” ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ, `to`๋งŒ ์ „๋‹ฌํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ `data`, `value`, `gas`๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ```ts const user = privateKeyToAccount(process.env.USER_PRIVATE_KEY as `0x${string}`); @@ -62,11 +62,11 @@ console.log("H_inner:", txHash); H_inner: 0x8f3a...2d41 ``` -์‚ฌ์šฉ์ž๋Š” USDT0๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉด์ œ ๊ณ„์ •์ด ๊ฐ€์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. `gas`๋Š” ํ† ํฐ ์ „์†ก ๋˜๋Š” ์Šน์ธ์„ ์ฒ˜๋ฆฌํ•˜๋Š” `150_000n`(`DEFAULT_INNER_GAS`)์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ํ˜ธ์ถœ์—๋Š” ๋ช…์‹œ์ ์ธ `gas`๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”. +์‚ฌ์šฉ์ž๋Š” USDT0๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉด์ œ ๊ณ„์ •์ด ๊ฐ€์Šค๋ฅผ ํ›„์›ํ•ฉ๋‹ˆ๋‹ค. `gas`๋Š” ํ† ํฐ ์ „์†ก ๋˜๋Š” ์Šน์ธ์„ ์ฒ˜๋ฆฌํ•˜๋Š” `150_000n`(`DEFAULT_INNER_GAS`)์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๊ฐ€์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ˜ธ์ถœ์—๋Š” ๋ช…์‹œ์ ์ธ `gas`๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”. ## 3. ๋ฐฐ์น˜ ๋ฆด๋ ˆ์ด -`sendBatch`๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ณ„์ •์—์„œ ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์„ ๋ฆด๋ ˆ์ดํ•ฉ๋‹ˆ๋‹ค. Nonce๋Š” ๊ณ„์ •์˜ ๋ณด๋ฅ˜ ์ค‘์ธ nonce์—์„œ ์ž๋™์œผ๋กœ ์ˆœ์„œ๊ฐ€ ์ง€์ •๋˜๋ฉฐ, ์ž…๋ ฅ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ๋‹น ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. +`sendBatch`๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ณ„์ •์—์„œ ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์„ ๋ฆด๋ ˆ์ดํ•ฉ๋‹ˆ๋‹ค. Nonce๋Š” ๊ณ„์ •์˜ ๋ณด๋ฅ˜ ์ค‘์ธ nonce์—์„œ ์ž๋™์œผ๋กœ ์‹œํ€€์‹ฑ๋˜๋ฉฐ, ์ž…๋ ฅ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ๋‹น ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ```ts const results = await gw.sendBatch(user, [ @@ -84,11 +84,11 @@ for (const r of results) { [1] โœ” 0x2b7c...9e04 ``` -๋ฐฐ์น˜๋Š” ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ๋Œ€์‹  `result.error`์˜ ํ•ญ๋ชฉ๋ณ„๋กœ ์‹คํŒจ๋ฅผ ๋ณด๊ณ ํ•˜๋ฏ€๋กœ ํ•˜๋‚˜์˜ ์ž˜๋ชป๋œ ํŠธ๋žœ์žญ์…˜์ด ๋‚˜๋จธ์ง€๋ฅผ ๋ง์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +๋ฐฐ์น˜๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋Œ€์‹  `result.error`์— ํ•ญ๋ชฉ๋ณ„ ์‹คํŒจ๋ฅผ ๋ณด๊ณ ํ•˜๋ฏ€๋กœ, ํ•˜๋‚˜์˜ ์ž˜๋ชป๋œ ํŠธ๋žœ์žญ์…˜์ด ๋‚˜๋จธ์ง€๋ฅผ ๋ง๊ฐ€๋œจ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -## 4. ํŒŒํŠธ๋„ˆ๋ณ„ ์ •์ฑ… ์ œํ•œ ์ ์šฉ +## 4. ํŒŒํŠธ๋„ˆ๋ณ„ ์ •์ฑ… ํ•œ๋„ ์ ์šฉ -๊ตฌ์„ฑ ํŒŒ์ผ์— ์ •์ฑ… ์ œํ•œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฉด์ œ ํ‚ค๊ฐ€ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ์„ ์œ„๋ฐ˜ํ•˜๋Š” InnerTx๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋˜๊ธฐ ์ „์— ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค. +์ •์ฑ… ํ•œ๋„๋ฅผ ๊ตฌ์„ฑ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฉด์ œ ํ‚ค๊ฐ€ ํ›„์›ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋„๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” InnerTx๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ „์— ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค. ```ts const enterprise = createStableEnterprise({ @@ -98,25 +98,25 @@ const enterprise = createStableEnterprise({ maxGasLimit: 500_000n, maxDataLength: 4_096, allowedTargets: [ - { address: token, selectors: ["0xa9059cbb"] }, // ERC-20 transfer only + { address: token, selectors: ["0xa9059cbb"] }, // ERC-20 ์ „์†ก๋งŒ ], }, }); ``` -`allowedTargets` ์™ธ๋ถ€์˜ ์ปจํŠธ๋ž™ํŠธ๋กœ์˜ ํŠธ๋žœ์žญ์…˜์€ `TARGET_NOT_ALLOWED` ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•˜๊ณ , `maxGasLimit`์„ ์ดˆ๊ณผํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์€ `GAS_LIMIT_EXCEEDED` ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. `address`์— `"*"`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ปจํŠธ๋ž™ํŠธ๋ฅผ ํ—ˆ์šฉํ•˜๊ณ , `selectors`๋ฅผ ์ƒ๋žตํ•˜์—ฌ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +`allowedTargets` ์™ธ์˜ ๊ณ„์•ฝ์œผ๋กœ์˜ ํŠธ๋žœ์žญ์…˜์€ `TARGET_NOT_ALLOWED` ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. `maxGasLimit`์„ ์ดˆ๊ณผํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์€ `GAS_LIMIT_EXCEEDED` ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. `address`๋กœ `"*"`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ณ„์•ฝ์„ ํ—ˆ์šฉํ•˜๊ณ , `selectors`๋ฅผ ์ƒ๋žตํ•˜์—ฌ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -## 5. ๋ฏธ๋ฆฌ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด +## 5. ์‚ฌ์ „ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด -๋น„๊ด€๋ฆฌ ํ๋ฆ„์˜ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ํ™˜๊ฒฝ์—์„œ InnerTx์— ์„œ๋ช…ํ•˜๊ณ  ์„œ๋ช…๋œ hex๋งŒ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ํ‚ค๋ฅผ ๋ณผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. `buildWaiverInnerTx`๋กœ ๋นŒ๋“œํ•œ ๋‹ค์Œ `relay`๋กœ ๋ฆด๋ ˆ์ดํ•ฉ๋‹ˆ๋‹ค. +๋น„๊ด€๋ฆฌํ˜• ํ๋ฆ„์˜ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ํ™˜๊ฒฝ์—์„œ InnerTx์— ์„œ๋ช…ํ•˜๊ณ  ์„œ๋ช…๋œ ํ—ฅ์Šค๋งŒ ์ œ๊ณตํ•˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž์˜ ํ‚ค๋ฅผ ๋ณผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. `buildWaiverInnerTx`๋กœ ๋นŒ๋“œํ•œ ๋‹ค์Œ `relay`๋กœ ๋ฆด๋ ˆ์ดํ•ฉ๋‹ˆ๋‹ค. ```ts import { buildWaiverInnerTx, toSigner } from "@stablechain/enterprise"; -// on the user's side โ€” buildWaiverInnerTx signs through a Signer; toSigner adapts a viem account +// ์‚ฌ์šฉ์ž ์ธก์—์„œ โ€” buildWaiverInnerTx๋Š” ์„œ๋ช…์ž๋ฅผ ํ†ตํ•ด ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค; toSigner๋Š” viem ๊ณ„์ •์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค const signed = await buildWaiverInnerTx(toSigner(user), stable.id, { to: token, data, gas: 150_000n, nonce }); -// on your backend +// ๋ฐฑ์—”๋“œ์—์„œ const { txHash } = await gw.relay(signed); console.log("H_inner:", txHash); ``` @@ -125,7 +125,7 @@ console.log("H_inner:", txHash); H_inner: 0x8f3a...2d41 ``` -์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฏธ๋ฆฌ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฝ์šฐ, `sendBatch`์™€ ๊ฐ™์ด ์ž…๋ ฅ๋‹น ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” `relayBatch`๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฌ์ „ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฝ์šฐ, `sendBatch`์ฒ˜๋Ÿผ ์ž…๋ ฅ๋‹น ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” `relayBatch`๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ## ๊ฑฐ๋ถ€ ์ฒ˜๋ฆฌ @@ -138,7 +138,7 @@ try { await gw.send(user, { to: token, data }); } catch (err) { if (err instanceof StableEnterpriseRelayError && err.code === "TARGET_NOT_ALLOWED") { - // the InnerTx target is outside the configured allowlist + // InnerTx ๋Œ€์ƒ์ด ๊ตฌ์„ฑ๋œ ํ—ˆ์šฉ ๋ชฉ๋ก ์™ธ๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค } throw err; } @@ -148,10 +148,11 @@ try { StableEnterpriseRelayError: relay failed [TARGET_NOT_ALLOWED]: target 0x... not allowed ``` -๋ชจ๋“  ๊ฑฐ๋ถ€ ์‚ฌ์œ ์— ๋Œ€ํ•œ ์ „์ฒด [`ErrorCode`](/ko/reference/enterprise-sdk#errorcode) ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. +๋ชจ๋“  ๊ฑฐ๋ถ€ ์ด์œ ์— ๋Œ€ํ•œ ์ „์ฒด [`ErrorCode`](/ko/reference/enterprise-sdk#errorcode) ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ## ๋‹ค์Œ ๋‹จ๊ณ„ -- [**๋ณด์žฅ๋œ ํŠธ๋žœ์žญ์…˜ ์ „์†ก**](/ko/how-to/send-guaranteed-transactions): ์˜ˆ์•ฝ๋œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ ˆ์ธ ๋ธ”๋ก์ŠคํŽ˜์ด์Šค์— ํŠธ๋žœ์žญ์…˜์„ ์ „์†กํ•˜๊ณ  ๊ฐ€์Šค ๋ฉด์ œ์™€ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. -- [**Enterprise SDK ์ฐธ์กฐ**](/ko/reference/enterprise-sdk#relay-with-gas-waiver): ๋ชจ๋“  ๋ฉ”์„œ๋“œ, ๊ตฌ์„ฑ ์˜ต์…˜ ๋ฐ ์˜ค๋ฅ˜ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. +- [**๋ณด์žฅ๋œ ํŠธ๋žœ์žญ์…˜ ์ „์†ก**](/ko/how-to/send-guaranteed-transactions): ์˜ˆ์•ฝ๋œ Enterprise-lane ๋ธ”๋ก ๊ณต๊ฐ„์— ํŠธ๋žœ์žญ์…˜์„ ์ „์†กํ•˜๊ณ  ๊ฐ€์Šค ๋ฉด์ œ์™€ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. +- [**Enterprise SDK ์ฐธ์กฐ**](/ko/reference/enterprise-sdk#relay-with-gas-waiver): ๋ชจ๋“  ๋ฉ”์„œ๋“œ, ๊ตฌ์„ฑ ์˜ต์…˜ ๋ฐ ์˜ค๋ฅ˜ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด. - [**๊ฐ€์Šค ๋ฉด์ œ**](/ko/explanation/gas-waiver): ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€์—์„œ ์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹. +- [**๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”**](/ko/how-to/integrate-gas-waiver): ์ž์ฒด ๋ฉด์ œ ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋Œ€์‹  Stable์—์„œ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ฉด์ œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. diff --git a/docs/pages/ko/how-to/self-hosted-gas-waiver.mdx b/docs/pages/ko/how-to/self-hosted-gas-waiver.mdx index b9b696c..ff0ecaa 100644 --- a/docs/pages/ko/how-to/self-hosted-gas-waiver.mdx +++ b/docs/pages/ko/how-to/self-hosted-gas-waiver.mdx @@ -1,39 +1,43 @@ --- source_path: how-to/self-hosted-gas-waiver.mdx -source_sha: c054baff79a39314af7a4aaa087bd4525dfc7f12 +source_sha: 9954e27c1926c87e7fdb45e5c7543e56f6594250 title: "์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ" -description: "Stable์—์„œ ์ž์ฒด ๊ฐ€์Šค ๋ฉด์ œ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜์„ธ์š”. ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋ฉด์ œ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์ถ•ํ•˜๋ฉฐ, ํ˜ธ์ŠคํŒ…๋œ ์„œ๋ฒ„ ์—†์ด ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." +description: "Stable์—์„œ ์ž์ฒด ๊ฐ€์Šค ๋ฉด์ œ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜์„ธ์š”. ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋ฉด์ œ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ , ํ˜ธ์ŠคํŒ…๋œ ์„œ๋ฒ„ ์—†์ด ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜์„ธ์š”." diataxis: "how-to" --- # ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ -์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ํ†ตํ•ด ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์ž์ฒด ๋ฉด์ œ ์ธํ”„๋ผ๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜จ์ฒด์ธ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋ฉด์ œ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•œ ๋‹ค์Œ, ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๋„คํŠธ์›Œํฌ์— ์ง์ ‘ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. +์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์ž์ฒด ๋ฉด์ œ ์ธํ”„๋ผ๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜จ์ฒด์ธ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋ฉด์ œ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•œ ๋‹ค์Œ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๋„คํŠธ์›Œํฌ์— ์ง์ ‘ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. -์ด ๊ฐ€์ด๋“œ๋Š” ๋ฉด์ œ ์ฃผ์†Œ ๋“ฑ๋ก, ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜ ์ˆ˜์ง‘, ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ๊ตฌ์„ฑ ๋ฐ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. +์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๋ฉด์ œ ์ฃผ์†Œ ๋“ฑ๋ก, ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜ ์ˆ˜์ง‘, ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ๊ตฌ์„ฑ ๋ฐ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. :::note -**๊ฐœ๋…:** ๊ฐ€์Šค ๋ฉด์ œ๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ [๊ฐ€์Šค ๋ฉด์ œ](/ko/explanation/gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘(๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜, ๊ถŒํ•œ ๋ถ€์—ฌ, ์ •์ฑ… ํ™•์ธ, ์‹คํ–‰ ์˜๋ฏธ๋ก , ๋ณด์•ˆ ๋ชจ๋ธ)์€ [๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ](/ko/reference/gas-waiver-api)์„ ์ฐธ์กฐํ•˜์„ธ์š”. +**๊ฐœ๋…:** ๊ฐ€์Šค ๋ฉด์ œ๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ์กด์žฌํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ [๊ฐ€์Šค ๋ฉด์ œ](/ko/explanation/gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘(๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜, ๊ถŒํ•œ ๋ถ€์—ฌ, ์ •์ฑ… ๊ฒ€์‚ฌ, ์‹คํ–‰ ์‹œ๋งจํ‹ฑ์Šค, ๋ณด์•ˆ ๋ชจ๋ธ)์€ [๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ](/ko/reference/gas-waiver-api)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ::: -ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API ํ†ตํ•ฉ ๊ฒฝ๋กœ๋Š” [๊ฐ€์Šค ๋ฌด๋ฃŒ ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”](/ko/how-to/integrate-gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. +ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API ํ†ตํ•ฉ ๊ฒฝ๋กœ๋Š” [๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”](/ko/how-to/integrate-gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. + +:::tip +`@stablechain/enterprise`๋Š” ๋™์ผํ•œ ๊ฑฐ๋ฒ„๋„Œ์Šค ๋“ฑ๋ก ๋ฉด์ œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์•„๋ž˜์˜ ๋ชจ๋“  ์ž‘์—…์„ ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. TypeScript๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์ˆ˜๋™์œผ๋กœ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋Œ€์‹  [๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฆด๋ ˆ์ด](/ko/how-to/relay-with-gas-waiver)๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. +::: ## ์ „์ œ ์กฐ๊ฑด -- ๊ฒ€์ฆ์ธ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ์ฃผ์†Œ. +- ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ์ฃผ์†Œ. - ๋Œ€์ƒ ๊ณ„์•ฝ์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ `AllowedTarget` ์ •์ฑ…. ## ๊ฐœ์š” ์ž์ฒด ํ˜ธ์ŠคํŒ… ํ๋ฆ„: -1. ์‚ฌ์šฉ์ž์˜ `gasPrice = 0`์ธ **์„œ๋ช…๋œ InnerTx๋ฅผ ์ˆ˜์ง‘**ํ•ฉ๋‹ˆ๋‹ค. -2. **WrapperTx๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค**: InnerTx๋ฅผ RLP ์ธ์ฝ”๋”ฉํ•˜๊ณ , ๋งˆ์ปค ์ฃผ์†Œ๋กœ ์ „์†ก๋˜๋Š” ํŠธ๋žœ์žญ์…˜์— ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. +1. `gasPrice = 0`์œผ๋กœ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์„œ๋ช…๋œ **InnerTx๋ฅผ ์ˆ˜์ง‘**ํ•ฉ๋‹ˆ๋‹ค. +2. **WrapperTx๋ฅผ ๊ตฌ์„ฑ**: InnerTx๋ฅผ RLP ์ธ์ฝ”๋”ฉํ•˜๊ณ  ๋งˆ์ปค ์ฃผ์†Œ๋กœ ์ „์†ก๋œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. 3. `eth_sendRawTransaction`์„ ํ†ตํ•ด WrapperTx๋ฅผ **๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ**ํ•ฉ๋‹ˆ๋‹ค. ## 1๋‹จ๊ณ„: ์‚ฌ์šฉ์ž InnerTx ์ˆ˜์ง‘ -์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์ธ ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. `to` ์ฃผ์†Œ์™€ ๋ฉ”์„œ๋“œ ์„ ํƒ์ž๋Š” ๋ฉด์ œ์ž์˜ `AllowedTarget` ์ •์ฑ…๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. `to` ์ฃผ์†Œ์™€ ๋ฉ”์„œ๋“œ ์…€๋ ‰ํ„ฐ๋Š” ๋ฉด์ œ์˜ `AllowedTarget` ์ •์ฑ…๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ```typescript // config.ts @@ -84,7 +88,7 @@ const signedInnerTx = await userWallet.signTransaction(innerTx); ## 2๋‹จ๊ณ„: WrapperTx ๊ตฌ์„ฑ -์„œ๋ช…๋œ InnerTx๋ฅผ RLP ์ธ์ฝ”๋”ฉํ•˜๊ณ  ๋งˆ์ปค ์ฃผ์†Œ๋กœ ์ „์†ก๋˜๋Š” ํŠธ๋žœ์žญ์…˜์— ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. `gasLimit`์€ ๋‚ด๋ถ€ ์‹คํ–‰๊ณผ ๋ž˜ํ•‘ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +์„œ๋ช…๋œ InnerTx๋ฅผ RLP ์ธ์ฝ”๋”ฉํ•˜๊ณ  ๋งˆ์ปค ์ฃผ์†Œ๋กœ์˜ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. `gasLimit`์€ ๋‚ด๋ถ€ ์‹คํ–‰ ๋ฐ ๋ž˜ํ•‘ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ```typescript // constructWrapper.ts @@ -110,12 +114,12 @@ const signedWrapperTx = await waiverWallet.signTransaction(wrapperTx); ``` :::warning -`InnerTx.gasPrice`์™€ `WrapperTx.gasPrice`๋Š” ๋ชจ๋‘ `0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. `WrapperTx.value`๋„ `0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ถฉ์กฑ๋˜์ง€ ์•Š์œผ๋ฉด ๊ฒ€์ฆ์ธ์ด ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. +`InnerTx.gasPrice`์™€ `WrapperTx.gasPrice`๋Š” ๋ชจ๋‘ `0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. `WrapperTx.value`๋„ `0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ถฉ์กฑ๋˜์ง€ ์•Š์œผ๋ฉด ๊ฒ€์ฆ์ž๊ฐ€ ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ::: ## 3๋‹จ๊ณ„: ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ -์„œ๋ช…๋œ WrapperTx๋ฅผ ํ‘œ์ค€ JSON-RPC๋ฅผ ํ†ตํ•ด ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. +ํ‘œ์ค€ JSON-RPC๋ฅผ ํ†ตํ•ด ์„œ๋ช…๋œ WrapperTx๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ```typescript // broadcast.ts @@ -131,14 +135,14 @@ Wrapper tx broadcast: 0x... Confirmed: true ``` -## ์ฃผ์š” ์š”์  +## ์ฃผ์š” ์‹œ์‚ฌ์  -- ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋ฉด์ œ๋Š” ์˜จ์ฒด์ธ ๊ฒ€์ฆ์ธ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋“ฑ๋ก๋œ ๋ฉด์ œ ์ฃผ์†Œ๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. -- WrapperTx๋Š” RLP ์ธ์ฝ”๋”ฉ๋œ InnerTx๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ปค ์ฃผ์†Œ(`0x...f333`)๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. -- InnerTx์™€ WrapperTx ๋ชจ๋‘ `gasPrice = 0` ๋ฐ `value = 0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +- ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋ฉด์ œ๋Š” ์˜จ์ฒด์ธ ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ๋“ฑ๋ก๋œ ๋ฉด์ œ ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +- WrapperTx๋Š” RLP ์ธ์ฝ”๋”ฉ๋œ InnerTx๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ํ•˜์—ฌ ๋งˆ์ปค ์ฃผ์†Œ(`0x...f333`)๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. +- InnerTx์™€ WrapperTx๋Š” ๋ชจ๋‘ `gasPrice = 0` ๋ฐ `value = 0`์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ## ๋‹ค์Œ ๊ถŒ์žฅ ์‚ฌํ•ญ -- [**๊ฐ€์Šค ๋ฉด์ œ ๊ฐœ๋…**](/ko/explanation/gas-waiver): ์ž์ฒด ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ธฐ ์ „์— ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•˜์„ธ์š”. -- [**๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ**](/ko/reference/gas-waiver-api): ๋งˆ์ปค ๋ผ์šฐํŒ…, ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ์‹คํ–‰ ์˜๋ฏธ๋ก ์— ๋Œ€ํ•œ ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘์„ ์ฐธ์กฐํ•˜์„ธ์š”. -- [**๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”**](/ko/how-to/integrate-gas-waiver): ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋Œ€์‹  ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. +- [**๊ฐ€์Šค ๋ฉด์ œ ๊ฐœ๋…**](/ko/explanation/gas-waiver): ์ž์ฒด์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•˜์‹ญ์‹œ์˜ค. +- [**๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ**](/ko/reference/gas-waiver-api): ๋งˆ์ปค ๋ผ์šฐํŒ…, ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ์‹คํ–‰ ์‹œ๋งจํ‹ฑ์Šค์— ๋Œ€ํ•œ ์ „์ฒด ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. +- [**๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”**](/ko/how-to/integrate-gas-waiver): ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋Œ€์‹  ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„ API๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. diff --git a/docs/pages/ko/reference/gas-waiver-api.mdx b/docs/pages/ko/reference/gas-waiver-api.mdx index 09d6d3a..f4e5f35 100644 --- a/docs/pages/ko/reference/gas-waiver-api.mdx +++ b/docs/pages/ko/reference/gas-waiver-api.mdx @@ -1,87 +1,87 @@ --- source_path: reference/gas-waiver-api.mdx -source_sha: 73af0a88040bca94925046ff388ccc018e9be11b +source_sha: 341f351cae76b4a715d9d44be9ac3552dd059dd5 title: "๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ" -description: "๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€ ์‚ฌ์–‘: ํŠธ๋žœ์žญ์…˜ ํ˜•์‹, ๋งˆ์ปค ๋ผ์šฐํŒ…, ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ๋ฐ ๋ฉด์ œ ์„œ๋ฒ„ API." +description: "๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€ ์‚ฌ์–‘: ํŠธ๋žœ์žญ์…˜ ํ˜•์‹, ๋งˆ์ปค ๋ผ์šฐํŒ…, ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด, ๋ฉด์ œ ์„œ๋ฒ„ API." diataxis: "reference" --- # ๊ฐ€์Šค ๋ฉด์ œ ํ”„๋กœํ† ์ฝœ -์ด ๋ฌธ์„œ๋Š” ๊ฐ€์Šค ๋ฉด์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค: ํŠธ๋žœ์žญ์…˜ ํ˜•์‹, ๋งˆ์ปค ๋ผ์šฐํŒ…, ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ๋ฐ ๋ฉด์ œ ์„œ๋ฒ„ API. +์ด ๋ฌธ์„œ๋Š” ๊ฐ€์Šค ๋ฉด์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค: ํŠธ๋žœ์žญ์…˜ ํ˜•์‹, ๋งˆ์ปค ๋ผ์šฐํŒ…, ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด, ๋ฉด์ œ ์„œ๋ฒ„ API. :::note -**๊ฐœ๋…:** ๊ฐ€์Šค ๋ฉด์ œ๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ์กด์žฌํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” [๊ฐ€์Šค ๋ฉด์ œ](/ko/explanation/gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„์— ๋Œ€ํ•œ ํ†ตํ•ฉ ๊ฐ€์ด๋“œ๋ฅผ ๋ณด๋ ค๋ฉด [๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”](/ko/how-to/integrate-gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. +**๊ฐœ๋…:** ๊ฐ€์Šค ๋ฉด์ œ๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ์กด์žฌํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” [๊ฐ€์Šค ๋ฉด์ œ](/ko/explanation/gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„์™€์˜ ํ†ตํ•ฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋Š” [๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”](/ko/how-to/integrate-gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ::: ## ๊ฐœ์š” -๊ฐ€์Šค ๋ฉด์ œ๋Š” ์†Œ์ˆ˜์˜ ๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ ์ฃผ์†Œ("๋ฉด์ œ์ž")๊ฐ€ `gasPrice = 0`์œผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•˜๋„๋ก ํ—ˆ์šฉํ•จ์œผ๋กœ์จ Stable์—์„œ ๊ฐ€์Šค ์—†๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Stable์€ ํ˜„์žฌ ๋ฉด์ œ ์„œ๋น„์Šค("๋ฉด์ œ ์„œ๋ฒ„")๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํ”„๋กœํ† ์ฝœ๋ณ„ ๋ž˜ํผ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐ€์Šค ์—†๋Š” UX๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ฐ€์Šค ๋ฉด์ œ๋Š” ๊ฑฐ๋ฒ„๋„Œ์Šค ์Šน์ธ์„ ๋ฐ›์€ ์†Œ์ˆ˜์˜ ์ฃผ์†Œ("๋ฉด์ œ์ž")๊ฐ€ `gasPrice = 0`์œผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ Stable์—์„œ ๊ฐ€์Šค ์—†๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Stable์€ ํ˜„์žฌ ํ”„๋กœํ† ์ฝœ๋ณ„ ๋ž˜ํผ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐ€์Šค ์—†๋Š” UX๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉด์ œ ์„œ๋น„์Šค("๋ฉด์ œ ์„œ๋ฒ„")๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ## ๋ฒ”์œ„ -์ด ์‚ฌ์–‘์€ ๋‹ค์Œ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. +์ด ์‚ฌ์–‘์€ ๋‹ค์Œ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค: - ๊ฐ€์Šค ๋ฉด์ œ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€ ๊ทœ์น™ - ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ฐ ๋งˆ์ปค ์ฃผ์†Œ -- ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ํ—ˆ์šฉ๋œ ๋Œ€์ƒ -- ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•œ ๋ฉด์ œ ์„œ๋ฒ„ ์ธํ„ฐํŽ˜์ด์Šค +- ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ์Šน์ธ ๋ฐ ํ—ˆ์šฉ๋œ ๋Œ€์ƒ +- ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž ํŠธ๋žœ์žญ์…˜ ์ œ์ถœ์„ ์œ„ํ•œ ๋ฉด์ œ ์„œ๋ฒ„ ์ธํ„ฐํŽ˜์ด์Šค ## ์ •์˜ -- **๋ฉด์ œ์ž**: ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋˜์–ด ๊ฐ€์Šค ๋ฉด์ œ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•  ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋œ ์ด๋”๋ฆฌ์›€ ์ฃผ์†Œ. -- **๋‚ด๋ถ€Tx**: ์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ์„œ๋ช…๋œ ํŠธ๋žœ์žญ์…˜(`gasPrice = 0`). -- **๋ž˜ํผTx**: ๋ฉด์ œ์ž๊ฐ€ ์„œ๋ช…ํ•œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ, ์‚ฌ์šฉ์ž์˜ `๋‚ด๋ถ€Tx`๋ฅผ ์ฒด์ธ์œผ๋กœ ์ „์†กํ•˜๊ณ  ์‹คํ–‰์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค. -- **๋งˆ์ปค ์ฃผ์†Œ**: ๋ฉด์ œ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ผํ‹ฐ๋„ฌ ์ฃผ์†Œ: `0x000000000000000000000000000000000000f333`. -- **AllowedTarget**: ๋ฉด์ œ์ž๋ฅผ ํŠน์ • ๊ณ„์•ฝ ์ฃผ์†Œ ๋ฐ ๋ฉ”์„œ๋“œ ์„ ํƒ๊ธฐ๋กœ ์ œํ•œํ•˜๋Š” ์ •์ฑ…. +- **๋ฉด์ œ์ž(Waiver)**: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋˜์–ด ๊ฐ€์Šค ๋ฉด์ œ ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋Š” Ethereum ์ฃผ์†Œ. +- **๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜(InnerTx)**: `gasPrice = 0`์œผ๋กœ ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ช…ํ•œ ํŠธ๋žœ์žญ์…˜. +- **๋ž˜ํผ ํŠธ๋žœ์žญ์…˜(WrapperTx)**: ์‚ฌ์šฉ์ž `InnerTx`๋ฅผ ์ฒด์ธ์œผ๋กœ ์ „์†กํ•˜๊ณ  ์‹คํ–‰์„ ์Šน์ธํ•˜๋Š” ๋ฉด์ œ์ž๊ฐ€ ์„œ๋ช…ํ•œ ํŠธ๋žœ์žญ์…˜. +- **๋งˆ์ปค ์ฃผ์†Œ(Marker address)**: ๋ฉด์ œ์ž ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ผํ‹ฐ๋„ฌ ์ฃผ์†Œ: `0x000000000000000000000000000000000000f333`. +- **ํ—ˆ์šฉ๋œ ๋Œ€์ƒ(AllowedTarget)**: ๋ฉด์ œ์ž๋ฅผ ํŠน์ • ๊ณ„์•ฝ ์ฃผ์†Œ ๋ฐ ๋ฉ”์„œ๋“œ ์„ ํƒ๊ธฐ๋กœ ์ œํ•œํ•˜๋Š” ์ •์ฑ…. ## ๊ฐœ์š” -๊ฐ€์Šค ๋ฉด์ œ๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +๊ฐ€์Šค ๋ฉด์ œ๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: -1. ์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ `๋‚ด๋ถ€Tx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. -2. ๋ฉด์ œ์ž๋Š” `๋‚ด๋ถ€Tx`๋ฅผ `๋ž˜ํผTx`๋กœ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. -3. ๊ฒ€์ฆ์ž๋Š” ๋งˆ์ปค ํŠธ๋žœ์žญ์…˜์„ ๊ฐ์ง€ํ•˜๊ณ , ๋ฉด์ œ์ž ์Šน์ธ ๋ฐ ์ •์ฑ… ์ œ์•ฝ ์กฐ๊ฑด์„ ํ™•์ธํ•œ ๋‹ค์Œ, ๋‚ด์žฅ๋œ `๋‚ด๋ถ€Tx`๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. +1. ์‚ฌ์šฉ์ž๋Š” `gasPrice = 0`์œผ๋กœ `InnerTx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. +2. ๋ฉด์ œ์ž๋Š” `InnerTx`๋ฅผ `WrapperTx`๋กœ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. +3. ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ๋Š” ๋งˆ์ปค ํŠธ๋žœ์žญ์…˜์„ ๊ฐ์ง€ํ•˜๊ณ  ๋ฉด์ œ์ž ์Šน์ธ ๋ฐ ์ •์ฑ… ์ œ์•ฝ ์กฐ๊ฑด์„ ํ™•์ธํ•œ ๋‹ค์Œ ๋‚ด์žฅ๋œ `InnerTx`๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. -Stable์€ ์Šน์ธ๋œ ๋ฉด์ œ์ž๋กœ ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ์„œ๋น„์Šค(๋ฉด์ œ ์„œ๋ฒ„)๋ฅผ ์šด์˜ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ช…๋œ `๋‚ด๋ถ€Tx` ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•ด ๋ฉด์ œ ์„œ๋ฒ„ API์™€ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. +Stable์€ ์Šน์ธ๋œ ๋ฉด์ œ์ž๋กœ ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ์„œ๋น„์Šค(๋ฉด์ œ ์„œ๋ฒ„)๋ฅผ ์šด์˜ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ช…๋œ `InnerTx` ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ œ์ถœํ•˜๋ ค๋ฉด ๋ฉด์ œ ์„œ๋ฒ„ API์™€ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ## ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘ ### ๋งˆ์ปค ์ฃผ์†Œ ๋ผ์šฐํŒ… -ํŠธ๋žœ์žญ์…˜์€ ๋‹ค์Œ์˜ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€์Šค ๋ฉด์ œ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. +ํŠธ๋žœ์žญ์…˜์€ ๋‹ค์Œ์˜ ๊ฒฝ์šฐ์—๋งŒ ๋ฉด์ œ์ž ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. - `to == 0x000000000000000000000000000000000000f333`. -ํ”„๋กœํ† ์ฝœ์€ ํŠธ๋žœ์žญ์…˜ `data` ํ•„๋“œ๋ฅผ ์ธ์ฝ”๋”ฉ๋œ ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜ ํŽ˜์ด๋กœ๋“œ๋กœ ํ•ด์„ํ•˜๊ณ  ์•„๋ž˜์˜ ๋ฉด์ œ ๊ฒ€์ฆ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +ํ”„๋กœํ† ์ฝœ์€ ํŠธ๋žœ์žญ์…˜ `data` ํ•„๋“œ๋ฅผ ์ธ์ฝ”๋”ฉ๋œ ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜ ํŽ˜์ด๋กœ๋“œ๋กœ ํ•ด์„ํ•˜๊ณ  ์•„๋ž˜์˜ ๋ฉด์ œ์ž ํ™•์ธ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. -### ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ์ •์ฑ… ํ™•์ธ +### ์Šน์ธ ๋ฐ ์ •์ฑ… ํ™•์ธ -๊ฐ ํ›„๋ณด ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด ๊ฒ€์ฆ์ž๋Š” ๋‹ค์Œ ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +๊ฐ ํ›„๋ณด ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ๋Š” ๋‹ค์Œ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: -1. **๋ฉด์ œ์ž ๊ถŒํ•œ ๋ถ€์—ฌ** +1. **๋ฉด์ œ์ž ์Šน์ธ** - `WrapperTx.from`์€ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ์ž ์ฃผ์†Œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2. **๊ฐ€์Šค ๋ฉด์ œ** - `WrapperTx.gasPrice`๋Š” `0`๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. - `InnerTx.gasPrice`๋Š” `0`๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. 3. **๋Œ€์ƒ ํ—ˆ์šฉ ๋ชฉ๋ก** - - `InnerTx.to`์™€ `InnerTx.data`์—์„œ ์ถ”์ถœ๋œ ๋ฉ”์„œ๋“œ ์„ ํƒ๊ธฐ๋Š” ๋ฉด์ œ์ž์˜ `AllowedTarget` ์ •์ฑ…์— ์˜ํ•ด ํ—ˆ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. + - `InnerTx.to` ๋ฐ `InnerTx.data`์—์„œ ์ถ”์ถœ๋œ ๋ฉ”์„œ๋“œ ์„ ํƒ๊ธฐ๋Š” ๋ฉด์ œ์ž์˜ `AllowedTarget` ์ •์ฑ…์— ์˜ํ•ด ํ—ˆ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 4. **๊ฐ’ ์ œํ•œ** - `WrapperTx.value`๋Š” `0`๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. -์–ด๋– ํ•œ ํ™•์ธ์ด๋ผ๋„ ์‹คํŒจํ•˜๋ฉด ๊ฒ€์ฆ์ž๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +์–ด๋–ค ํ™•์ธ์ด๋ผ๋„ ์‹คํŒจํ•˜๋ฉด ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ๋Š” ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -### ์‹คํ–‰ ์‹œ๋งจํ‹ฑ์Šค +### ์‹คํ–‰ ์˜๋ฏธ๋ก  ๋ชจ๋“  ํ™•์ธ์ด ํ†ต๊ณผํ•˜๋ฉด: -1. ํ”„๋กœํ† ์ฝœ์€ ์‚ฌ์šฉ์ž์˜ `from`, `nonce` ๋ฐ ํ˜ธ์ถœ ์‹œ๋งจํ‹ฑ์Šค๋ฅผ ๋ณด์กดํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž๋กœ `InnerTx`๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. -2. ๊ฐ€์Šค ํšŒ๊ณ„๋Š” ๋ฉด์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค: ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์Šค๋ฅผ ์ง€๋ถˆํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฉด์ œ ํŠธ๋žœ์žญ์…˜์€ ๊ธฐ๋Šฅ ์ •์˜์— ๋”ฐ๋ผ `gasPrice = 0`์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. -3. ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์€ `InnerTx` ์‹คํ–‰(์–ธ๋žฉ ๋ฐ ๊ฒ€์ฆ์„ ์œ„ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ ํฌํ•จ)์„ ์ถฉ๋‹นํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ `gasLimit`์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +1. ํ”„๋กœํ† ์ฝœ์€ ์‚ฌ์šฉ์ž์˜ `from`, `nonce` ๋ฐ ํ˜ธ์ถœ ์˜๋ฏธ๋ก ์„ ์œ ์ง€ํ•˜๋ฉด์„œ `InnerTx`๋ฅผ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. +2. ๊ฐ€์Šค ๊ณ„์‚ฐ์€ ๋ฉด์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์Šค๋ฅผ ์ง€๋ถˆํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฉด์ œ ํŠธ๋žœ์žญ์…˜์€ ๊ธฐ๋Šฅ ์ •์˜์— ๋”ฐ๋ผ `gasPrice = 0`์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +3. ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์€ `InnerTx` ์‹คํ–‰(๋ž˜ํ•‘ ํ•ด์ œ ๋ฐ ํ™•์ธ์„ ์œ„ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ ํฌํ•จ)์„ ์ปค๋ฒ„ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ `gasLimit`์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ## ํŠธ๋žœ์žญ์…˜ ํ˜•์‹ -### ๋ž˜ํผTx +### WrapperTx ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์€ ๋ฉด์ œ์ž๊ฐ€ ์„œ๋ช…ํ•˜๊ณ  ๋งˆ์ปค ์ฃผ์†Œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. @@ -89,15 +89,15 @@ Stable์€ ์Šน์ธ๋œ ๋ฉด์ œ์ž๋กœ ์˜จ์ฒด์ธ์— ๋“ฑ๋ก๋œ ๋ฉด์ œ ์„œ๋น„์Šค(๋ฉด์ œ WrapperTx { from: waiver_address, to: 0x000000000000000000000000000000000000f333, - value: 0, // 0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. + value: 0, // 0์ด์–ด์•ผ ํ•จ data: RLP(InnerTx), // RLP ์ธ์ฝ”๋”ฉ๋œ ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜ - gasPrice: 0, // 0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. - gasLimit: sufficient_for_inner, // ๋‚ด๋ถ€ ์‹คํ–‰ + ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. + gasPrice: 0, // 0์ด์–ด์•ผ ํ•จ + gasLimit: sufficient_for_inner, // ๋‚ด๋ถ€ ์‹คํ–‰ + ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ปค๋ฒ„ํ•ด์•ผ ํ•จ nonce: waiver_nonce } ``` -### ๋‚ด๋ถ€Tx +### InnerTx ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์€ ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. @@ -107,49 +107,53 @@ InnerTx { to: target_contract, value: value, data: call_data, - gasPrice: 0, // 0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. + gasPrice: 0, // 0์ด์–ด์•ผ ํ•จ gasLimit: execution_gas, nonce: user_nonce } ``` -## ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ์•ก์„ธ์Šค +## ๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด ์ ‘๊ทผ -๋ฉด์ œ์ž ๊ถŒํ•œ ๋ถ€์—ฌ๋Š” ๊ฒ€์ฆ์ž ๊ฑฐ๋ฒ„๋„Œ์Šค์— ์˜ํ•ด ์˜จ์ฒด์ธ์—์„œ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. +๋ฉด์ œ์ž ์Šน์ธ์€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ ๊ฑฐ๋ฒ„๋„Œ์Šค์— ์˜ํ•ด ์˜จ์ฒด์ธ์—์„œ ํ†ต์ œ๋ฉ๋‹ˆ๋‹ค. -๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +๊ฑฐ๋ฒ„๋„Œ์Šค ์ œ์–ด๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: -- ๋ฉด์ œ์ž ์ฃผ์†Œ์˜ ๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ +- ๋ฉด์ œ์ž ์ฃผ์†Œ์˜ ๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ ์Šน์ธ - ๋ฉด์ œ์ž ๋“ฑ๋ก ๋ฐ ์—…๋ฐ์ดํŠธ์˜ ์˜จ์ฒด์ธ ํˆฌ๋ช…์„ฑ - ์ทจ์†Œ ๊ธฐ๋Šฅ -- `AllowedTarget`์„ ํ†ตํ•œ ๋ฉด์ œ๋ณ„ ๋ฒ”์œ„ ์ง€์ • +- `AllowedTarget`์„ ํ†ตํ•œ ๋ฉด์ œ์ž๋ณ„ ๋ฒ”์œ„ ์ง€์ • ## ๋ณด์•ˆ ๋ชจ๋ธ ### ์ตœ์ข… ์‚ฌ์šฉ์ž ์„œ๋ช… ๋ฌด๊ฒฐ์„ฑ -์‚ฌ์šฉ์ž๊ฐ€ `InnerTx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉด์ œ์ž๋Š” ์„œ๋ช…์„ ๋ฌดํšจํ™”ํ•˜์ง€ ์•Š๊ณ ๋Š” ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•œ ํŠธ๋žœ์žญ์…˜ ํŽ˜์ด๋กœ๋“œ์—๋งŒ ์„œ๋ช…ํ•˜๋„๋ก ์—ฌ์ „ํžˆ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +์‚ฌ์šฉ์ž๋Š” `InnerTx`์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉด์ œ์ž๋Š” ์„œ๋ช…์„ ๋ฌดํšจํ™”ํ•˜์ง€ ์•Š๊ณ ๋Š” ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•œ ํŠธ๋žœ์žญ์…˜ ํŽ˜์ด๋กœ๋“œ์—๋งŒ ์„œ๋ช…ํ•˜๋„๋ก ์—ฌ์ „ํžˆ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -### ํŠธ๋Ÿฌ์ŠคํŠธ ๊ฒฝ๊ณ„ +### ์‹ ๋ขฐ ๊ฒฝ๊ณ„ -๊ฐ€์Šค ๋ฉด์ œ๋Š” ํŒŒํŠธ๋„ˆ๊ฐ€ ๋ฉด์ œ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ œ์ถœ๋ฌผ์„ ๋ผ์šฐํŒ…ํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค ์ข…์†์„ฑ์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. +๊ฐ€์Šค ๋ฉด์ œ๋Š” ํŒŒํŠธ๋„ˆ๊ฐ€ ๋ฉด์ œ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ œ์ถœ์„ ๋ผ์šฐํŒ…ํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค ์ข…์†์„ฑ์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค: -- ์„œ๋น„์Šค์˜ ๊ฐ€์šฉ์„ฑ์€ ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•˜๋Š” ๋Šฅ๋ ฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. -- ๊ถŒํ•œ ๋ถ€์—ฌ๋Š” ์˜จ์ฒด์ธ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋“ฑ๋ก๋œ ๋ฉด์ œ์ž ์ฃผ์†Œ๋งŒ ์œ ํšจํ•œ ๋ž˜ํผ ์ œ์ถœ๋ฌผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- ์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ์€ ๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ œ์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. +- ์Šน์ธ์€ ์˜จ์ฒด์ธ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋“ฑ๋ก๋œ ๋ฉด์ œ์ž ์ฃผ์†Œ๋งŒ ์œ ํšจํ•œ ๋ž˜ํผ ์ œ์ถœ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ## ํ†ตํ•ฉ -๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. +์„ธ ๊ฐ€์ง€ ๊ฒฝ๋กœ๋Š” ๋™์ผํ•œ ์˜จ์ฒด์ธ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ๋ˆ„๊ฐ€ ๋ฉด์ œ์ž ํ‚ค๋ฅผ ๋ณด์œ ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. [ํ†ตํ•ฉ ๊ฒฝ๋กœ ์„ ํƒ](/ko/explanation/gas-waiver#choosing-an-integration-path)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. -1. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์„œ๋ช…๋œ `InnerTx`๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค (`gasPrice = 0`). +ํ˜ธ์ŠคํŒ…๋œ ๋ฉด์ œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ: + +1. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์„œ๋ช…๋œ `InnerTx`(`gasPrice = 0`)๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. 2. ์„œ๋ช…๋œ ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜์„ ๋ฉด์ œ ์„œ๋ฒ„ API์— ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. -3. ์ŠคํŠธ๋ฆฌ๋ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. +3. ์ŠคํŠธ๋ฆฌ๋ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +์ง์ ‘ ๋“ฑ๋กํ•œ ๋ฉด์ œ์ž ์ฃผ์†Œ์—์„œ `@stablechain/enterprise`๋Š” ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ `WrapperTx`๋ฅผ ๋นŒ๋“œ, ์„œ๋ช… ๋ฐ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. [๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆด๋ ˆ์ด](/ko/how-to/relay-with-gas-waiver) ๋˜๋Š” [์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ](/ko/how-to/self-hosted-gas-waiver)๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋ž˜ํผ๋ฅผ ์ง์ ‘ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค. ## ๋ฉด์ œ ์„œ๋ฒ„ ### ๊ฐœ์š” -๋ฉด์ œ ์„œ๋ฒ„๋Š” ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž `InnerTx` ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋ฉด์ œ์ž ์Šน์ธ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฉด์ œ์ž ์ฃผ์†Œ๋ฅผ ์šด์˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. +๋ฉด์ œ ์„œ๋ฒ„๋Š” ์„œ๋ช…๋œ ์‚ฌ์šฉ์ž `InnerTx` ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋ฉด์ œ์ž๊ฐ€ ์Šน์ธํ•œ ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ž˜ํ•‘ํ•˜๊ณ  ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ๋ž˜ํผ ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฉด์ œ์ž ์ฃผ์†Œ๋ฅผ ์šด์˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ### ์—”๋“œํฌ์ธํŠธ ๋ฐ ๊ธฐ๋ณธ URL @@ -160,7 +164,7 @@ InnerTx { ### ์ธ์ฆ -health๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์—”๋“œํฌ์ธํŠธ์—๋Š” ๋ฒ ์–ด๋Ÿฌ ํ† ํฐ ์ธ์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +๊ฑด๊ฐ•์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์—”๋“œํฌ์ธํŠธ๋Š” ๋ฒ ์–ด๋Ÿฌ ํ† ํฐ ์ธ์ฆ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค: ```text Authorization: Bearer @@ -170,7 +174,7 @@ Authorization: Bearer #### GET `/v1/health` -์ƒํƒœ ํ™•์ธ ์—”๋“œํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. +๊ฑด๊ฐ• ํ™•์ธ ์—”๋“œํฌ์ธํŠธ. ์ธ์ฆ: ์—†์Œ. @@ -178,7 +182,7 @@ Authorization: Bearer ์„œ๋ช…๋œ ๋‚ด๋ถ€ ํŠธ๋žœ์žญ์…˜ ๋ฐฐ์น˜๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. -์ธ์ฆ: ํ•„์ˆ˜ (`Bearer`). +์ธ์ฆ: ํ•„์ˆ˜(`Bearer`). ์š”์ฒญ ๋ณธ๋ฌธ: @@ -199,9 +203,9 @@ Authorization: Bearer #### GET `/v1/submit` -์ŠคํŠธ๋ฆฌ๋ฐ ์ œ์ถœ์„ ์œ„ํ•œ WebSocket ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. +์ŠคํŠธ๋ฆฌ๋ฐ ์ œ์ถœ์„ ์œ„ํ•œ WebSocket ์ธํ„ฐํŽ˜์ด์Šค. -์ธ์ฆ: ํ•„์ˆ˜ (`Bearer`). +์ธ์ฆ: ํ•„์ˆ˜(`Bearer`). ### ํ†ตํ•ฉ ์˜ˆ์‹œ @@ -238,7 +242,7 @@ async function submitGaslessTransaction(signedInnerTxHex, apiKey) { ### ์‚ฌ์šฉ์ž InnerTx ์ƒ์„ฑ -`gasPrice = 0`์œผ๋กœ `InnerTx`๋ฅผ ๊ตฌ์„ฑํ•œ ๋‹ค์Œ ์‚ฌ์šฉ์ž ์„œ๋ช…์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์˜ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค. +`gasPrice = 0`์œผ๋กœ `InnerTx`๋ฅผ ๊ตฌ์„ฑํ•œ ๋‹ค์Œ ์‚ฌ์šฉ์ž ์„œ๋ช…์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ: @@ -250,7 +254,7 @@ async function createInnerTx(userWallet, contractAddress, callData, nonce) { to: contractAddress, data: callData, value: value, - gasPrice: 0, // ๋ฉด์ œ์ž์˜ ๊ฒฝ์šฐ 0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. + gasPrice: 0, // ๋ฉด์ œ๋ฅผ ์œ„ํ•ด 0์ด์–ด์•ผ ํ•จ gasLimit: 100000, nonce: nonce, chainId: 2201, // ๋ฉ”์ธ๋„ท์€ 988, ํ…Œ์ŠคํŠธ๋„ท์€ 2201 @@ -262,17 +266,18 @@ async function createInnerTx(userWallet, contractAddress, callData, nonce) { ### ์˜ค๋ฅ˜ ์ฝ”๋“œ -- `PARSE_ERROR`: ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. -- `INVALID_REQUEST`: ์ž˜๋ชป๋œ ์š”์ฒญ ๋ณธ๋ฌธ -- `BATCH_SIZE_EXCEEDED`: ๋ฐฐ์น˜ ํฌ๊ธฐ๊ฐ€ ํ—ˆ์šฉ๋œ ์ตœ๋Œ€๊ฐ’์„ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. +- `PARSE_ERROR`: ํŠธ๋žœ์žญ์…˜ ํŒŒ์‹ฑ ์‹คํŒจ +- `INVALID_REQUEST`: ์š”์ฒญ ๋ณธ๋ฌธ ํ˜•์‹์ด ์ž˜๋ชป๋จ +- `BATCH_SIZE_EXCEEDED`: ๋ฐฐ์น˜ ํฌ๊ธฐ๊ฐ€ ํ—ˆ์šฉ๋œ ์ตœ๋Œ€๊ฐ’์„ ์ดˆ๊ณผํ•จ - `VALIDATION_FAILED`: ํŠธ๋žœ์žญ์…˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์‹คํŒจ -- `BROADCAST_FAILED`: ์ฒด์ธ์— ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. +- `BROADCAST_FAILED`: ์ฒด์ธ์œผ๋กœ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์‹คํŒจ - `RATE_LIMITED`: ๋น„์œจ ์ œํ•œ ์ดˆ๊ณผ -- `QUEUE_FULL`: ์„œ๋ฒ„ ํ ์šฉ๋Ÿ‰ ์ดˆ๊ณผ +- `QUEUE_FULL`: ์„œ๋ฒ„ ํ๊ฐ€ ์šฉ๋Ÿ‰์— ๋„๋‹ฌํ•จ - `TIMEOUT`: ์š”์ฒญ ์‹œ๊ฐ„ ์ดˆ๊ณผ ## ๋‹ค์Œ ๊ถŒ์žฅ ์‚ฌํ•ญ -- [**์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜**](/ko/how-to/zero-gas-transactions): ์ œ๋กœ ๊ฐ€์Šค ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์˜์ˆ˜์ฆ๊ณผ ํ•จ๊ป˜ ๋ฐ๋ชจ ์ค‘์‹ฌ์˜ ์„ค๋ช…. +- [**์ œ๋กœ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜**](/ko/how-to/zero-gas-transactions): ๊ฐ€์Šค ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ 0์ธ ์˜์ˆ˜์ฆ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐ๋ชจ ์ค‘์‹ฌ์˜ ์„ค๋ช…์„œ. - [**๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜ ํ™œ์„ฑํ™”**](/ko/how-to/integrate-gas-waiver): ๋ฐฐ์น˜ ์ œ์ถœ ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ์ „์ฒด ํ˜ธ์ŠคํŒ… API ํ†ตํ•ฉ ๊ฐ€์ด๋“œ. -- [**์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ**](/ko/how-to/self-hosted-gas-waiver): ํ˜ธ์ŠคํŒ… API ์—†์ด ์ž์ฒด ๋ฉด์ œ ์ธํ”„๋ผ ์‹คํ–‰. +- [**์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€์Šค ๋ฉด์ œ**](/ko/how-to/self-hosted-gas-waiver): ํ˜ธ์ŠคํŒ…๋œ API ์—†์ด ์ž์ฒด ๋ฉด์ œ ์ธํ”„๋ผ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. +- [**๊ฐ€์Šค ๋ฉด์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆด๋ ˆ์ด**](/ko/how-to/relay-with-gas-waiver): ์œ ํ˜•์ด ์ง€์ •๋œ Enterprise SDK ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๋ฉด์ œ์—์„œ ๊ฐ€์Šค๋ฅผ ํ›„์›ํ•ฉ๋‹ˆ๋‹ค. diff --git a/docs/pages/ko/reference/indexers.mdx b/docs/pages/ko/reference/indexers.mdx index 9357f81..9f5c792 100644 --- a/docs/pages/ko/reference/indexers.mdx +++ b/docs/pages/ko/reference/indexers.mdx @@ -1,6 +1,6 @@ --- source_path: reference/indexers.mdx -source_sha: 208d3664597b9263a10478a7fb3ad16384dffb53 +source_sha: 6cc9367a3209b641df9f4a6d11c8de08332c7ce5 title: "์ธ๋ฑ์„œ" description: "Stable์„ ์ง€์›ํ•˜๋Š” ์ธ๋ฑ์‹ฑ, ๋ถ„์„, ๊ทœ์ • ์ค€์ˆ˜ ๋ฐ ์กฐ์‚ฌ ์ œ๊ณต์—…์ฒด๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”." diataxis: "reference" @@ -8,49 +8,50 @@ diataxis: "reference" # ์ธ๋ฑ์„œ -์ธ๋ฑ์„œ, ๋ถ„์„ ํ”Œ๋žซํผ ๋ฐ ๋ธ”๋ก์ฒด์ธ ์ธํ…”๋ฆฌ์ „์Šค ์ œ๊ณต์—…์ฒด๋Š” Stable์—์„œ ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ , ํ™œ๋™์„ ์ธก์ •ํ•˜๊ณ , ๊ฑฐ๋ž˜ ์œ„ํ—˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์ž๊ธˆ ํ๋ฆ„์„ ์กฐ์‚ฌํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. Stable์€ EVM ํ˜ธํ™˜์ด๋ฏ€๋กœ ํ‘œ์ค€ ์ด๋”๋ฆฌ์›€ ์ธ๋ฑ์‹ฑ ๋„๊ตฌ๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. +์ธ๋ฑ์„œ, ๋ถ„์„ ํ”Œ๋žซํผ ๋ฐ ๋ธ”๋ก์ฒด์ธ ์ธํ…”๋ฆฌ์ „์Šค ์ œ๊ณต์—…์ฒด๋Š” Stable์—์„œ ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ , ํ™œ๋™์„ ์ธก์ •ํ•˜๊ณ , ๊ฑฐ๋ž˜ ์œ„ํ—˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์ž๊ธˆ ํ๋ฆ„์„ ์กฐ์‚ฌํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. Stable์€ EVM ํ˜ธํ™˜๋˜๋ฏ€๋กœ ํ‘œ์ค€ ์ด๋”๋ฆฌ์›€ ์ธ๋ฑ์‹ฑ ๋„๊ตฌ๋Š” ์ˆ˜์ • ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์—๋Š” Stable์—์„œ ์ธ๋ฑ์‹ฑ, ๋ถ„์„, ๊ทœ์ • ์ค€์ˆ˜ ๋ฐ ์กฐ์‚ฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ œ๊ณต์—…์ฒด๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ## ๊ฐœ์š” ํ‘œ -| **์ œ๊ณต์—…์ฒด** | **์นดํ…Œ๊ณ ๋ฆฌ** | **๋ฌธ์„œ / ์‹œ์ž‘ํ•˜๊ธฐ** | **์ฐธ๊ณ ** | -| :-------------------------------------------------------------------------- | :-------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [**Stablescan**](https://stablescan.xyz/) | ๋ธ”๋ก์ฒด์ธ ํƒ์ƒ‰๊ธฐ | [https://docs.etherscan.io/introduction](https://docs.etherscan.io/introduction) | ๋ธ”๋ก์ฒด์ธ ํƒ์ƒ‰๊ธฐ; ๊ฑฐ๋ž˜, ๋ธ”๋ก ๋ฐ ๊ณ„์•ฝ ๊ฐ€์‹œ์„ฑ. | -| [**Envio**](https://envio.dev/?utm_source=stable&utm_medium=partner-docs) | ์ธ๋ฑ์„œ | [https://docs.envio.dev/](https://docs.envio.dev/) | ๋‹จ์ผ GraphQL API๋ฅผ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ ๊ณผ๊ฑฐ ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ. | -| [**The Graph**](https://thegraph.com/explorer/participants/indexers) | ์ธ๋ฑ์„œ | [https://thegraph.com/docs/en/developing/creating-a-subgraph/](https://thegraph.com/docs/en/developing/creating-a-subgraph/) | GraphQL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•, ๋ฐฐํฌ ๋ฐ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. | -| [**Goldsky**](https://goldsky.com/) | ์ธ๋ฑ์„œ | [https://docs.goldsky.com/introduction](https://docs.goldsky.com/introduction) | ๊ณ ์„ฑ๋Šฅ ์ธ๋ฑ์‹ฑ ๋ฐ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ. | -| [**Ormi Labs**](https://ormilabs.com/) | ์ธ๋ฑ์„œ | [https://docs.ormilabs.com/subgraphs/quickstart](https://docs.ormilabs.com/subgraphs/quickstart) | ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ฐจ์„ธ๋Œ€ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ์ธ๋ฑ์„œ. | -| [**Allium**](https://www.allium.so/) | ๋ถ„์„ / ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ | [https://docs.allium.so/](https://docs.allium.so/) | ์ •๊ทœํ™”๋œ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ์…‹ ๋ฐ ๋ถ„์„ ๋„๊ตฌ. | -| [**CoinMarketCap**](https://coinmarketcap.com/api/) | ์‹œ์žฅ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ | [https://coinmarketcap.com/api/documentation/v1/](https://coinmarketcap.com/api/documentation/v1/) | ์‹œ์žฅ ๊ฐ€๊ฒฉ, ๋ชฉ๋ก ๋ฐ ์ถ”์  ๋„๊ตฌ. | -| [**CoinGecko**](https://www.coingecko.com/en/api) | ์‹œ์žฅ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ | [https://docs.coingecko.com/](https://docs.coingecko.com/) | ๊ฐœ๋ฐœ์ž API๋ฅผ ํ†ตํ•œ ๋…๋ฆฝ์ ์ธ ์‹œ์žฅ ๋ฐ์ดํ„ฐ. | -| [**Dexscreener**](https://docs.dexscreener.com/) | DEX ๋ถ„์„ | [https://docs.dexscreener.com/](https://docs.dexscreener.com/) | ์‹ค์‹œ๊ฐ„ DEX ์ฐจํŠธ, ์œ ๋™์„ฑ ๋ถ„์„ ๋ฐ ๋Œ€์‹œ๋ณด๋“œ. | -| [**DeBank**](https://debank.com/) | ํฌํŠธํด๋ฆฌ์˜ค / ์ง€๊ฐ‘ ๋ถ„์„ | [https://cloud.debank.com/](https://cloud.debank.com/) | EVM ์ง€๊ฐ‘ ์ถ”์ , ๊ฑฐ๋ž˜ ๋ฐ ํฌํŠธํด๋ฆฌ์˜ค ํ†ต์ฐฐ๋ ฅ. | -| [**Chainalysis**](https://www.chainalysis.com/) | ๊ทœ์ • ์ค€์ˆ˜ / ์กฐ์‚ฌ | [https://www.chainalysis.com/request-a-demo/](https://www.chainalysis.com/request-a-demo/) | KYT ๋ชจ๋‹ˆํ„ฐ๋ง, ์—”ํ‹ฐํ‹ฐ ์Šคํฌ๋ฆฌ๋‹ ๋ฐ Stable ํ† ํฐ์— ๋Œ€ํ•œ ๋ฆฌ์•กํ„ฐ ์กฐ์‚ฌ. | +| **์ œ๊ณต์—…์ฒด** | **์นดํ…Œ๊ณ ๋ฆฌ** | **๋ฌธ์„œ / ์‹œ์ž‘ํ•˜๊ธฐ** | **์ฐธ๊ณ ** | +| :-------------------------------------------------------------------------- | :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------- | +| [**Stablescan**](https://stablescan.xyz/) | ๋ธ”๋ก์ฒด์ธ ํƒ์ƒ‰๊ธฐ | [https://docs.etherscan.io/introduction](https://docs.etherscan.io/introduction) | ๋ธ”๋ก์ฒด์ธ ํƒ์ƒ‰๊ธฐ; ํŠธ๋žœ์žญ์…˜, ๋ธ”๋ก, ๊ณ„์•ฝ ๊ฐ€์‹œ์„ฑ. | +| [**Envio**](https://envio.dev/?utm_source=stable&utm_medium=partner-docs) | ์ธ๋ฑ์„œ | [https://docs.envio.dev/](https://docs.envio.dev/) | ๋‹จ์ผ GraphQL API๋ฅผ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ ๊ณผ๊ฑฐ ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ. | +| [**The Graph**](https://thegraph.com/explorer/participants/indexers) | ์ธ๋ฑ์„œ | [https://thegraph.com/docs/en/developing/creating-a-subgraph/](https://thegraph.com/docs/en/developing/creating-a-subgraph/) | GraphQL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„๋ฅผ ๋นŒ๋“œ, ๋ฐฐํฌ ๋ฐ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. | +| [**Goldsky**](https://goldsky.com/) | ์ธ๋ฑ์„œ | [https://docs.goldsky.com/introduction](https://docs.goldsky.com/introduction) | ๊ณ ์„ฑ๋Šฅ ์ธ๋ฑ์‹ฑ ๋ฐ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ. | +| [**Ormi Labs**](https://ormilabs.com/) | ์ธ๋ฑ์„œ | [https://docs.ormilabs.com/subgraphs/quickstart](https://docs.ormilabs.com/subgraphs/quickstart) | ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ฐจ์„ธ๋Œ€ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ์ธ๋ฑ์„œ. | +| [**SQD**](https://sqd.dev/chains/stable/) | ์ธ๋ฑ์„œ | [https://docs.sqd.dev/](https://docs.sqd.dev/) | ๋””์ฝ”๋”ฉ๋œ ๊ณผ๊ฑฐ ๋ฐ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ; Stable ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ์š”์ฒญ ์‹œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. | +| [**Allium**](https://www.allium.so/) | ๋ถ„์„ / ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ | [https://docs.allium.so/](https://docs.allium.so/) | ์ •๊ทœํ™”๋œ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ ์„ธํŠธ ๋ฐ ๋ถ„์„ ๋„๊ตฌ. | +| [**CoinMarketCap**](https://coinmarketcap.com/api/) | ์‹œ์žฅ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ | [https://coinmarketcap.com/api/documentation/v1/](https://coinmarketcap.com/api/documentation/v1/) | ์‹œ์žฅ ๊ฐ€๊ฒฉ, ์ƒ์žฅ ๋ฐ ์ถ”์  ๋„๊ตฌ. | +| [**CoinGecko**](https://www.coingecko.com/en/api) | ์‹œ์žฅ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ | [https://docs.coingecko.com/](https://docs.coingecko.com/) | ๊ฐœ๋ฐœ์ž API๋ฅผ ํ†ตํ•œ ๋…๋ฆฝ์ ์ธ ์‹œ์žฅ ๋ฐ์ดํ„ฐ. | +| [**Dexscreener**](https://docs.dexscreener.com/) | DEX ๋ถ„์„ | [https://docs.dexscreener.com/](https://docs.dexscreener.com/) | ์‹ค์‹œ๊ฐ„ DEX ์ฐจํŠธ, ์œ ๋™์„ฑ ๋ถ„์„ ๋ฐ ๋Œ€์‹œ๋ณด๋“œ. | +| [**DeBank**](https://debank.com/) | ํฌํŠธํด๋ฆฌ์˜ค / ์ง€๊ฐ‘ ๋ถ„์„ | [https://cloud.debank.com/](https://cloud.debank.com/) | EVM ์ง€๊ฐ‘ ์ถ”์ , ๊ฑฐ๋ž˜ ๋ฐ ํฌํŠธํด๋ฆฌ์˜ค ์ธ์‚ฌ์ดํŠธ. | +| [**Chainalysis**](https://www.chainalysis.com/) | ๊ทœ์ • ์ค€์ˆ˜ / ์กฐ์‚ฌ | [https://www.chainalysis.com/request-a-demo/](https://www.chainalysis.com/request-a-demo/) | Stable ํ† ํฐ์— ๋Œ€ํ•œ KYT ๋ชจ๋‹ˆํ„ฐ๋ง, ์—”ํ‹ฐํ‹ฐ ์Šคํฌ๋ฆฌ๋‹ ๋ฐ Reactor ์กฐ์‚ฌ. | ## 1. ์ธ๋ฑ์„œ -์ธ๋ฑ์„œ๋Š” ์›์‹œ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ๋ฐ ์ฟผ๋ฆฌ ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์„œ๋Š” ๋Œ€์‹œ๋ณด๋“œ, ๋ถ„์„, ์›”๋ ›, ๋ธ”๋ก ํƒ์ƒ‰๊ธฐ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฑ์—”๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. +์ธ๋ฑ์„œ๋Š” ์›์‹œ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ๋ฐ ์ฟผ๋ฆฌ ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋Œ€์‹œ๋ณด๋“œ, ๋ถ„์„, ์ง€๊ฐ‘, ๋ธ”๋ก ํƒ์ƒ‰๊ธฐ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฑ์—”๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ### Envio -Envio๋Š” ๋ธ”๋ก์ฒด์ธ ์•ฑ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ GraphQL API๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๋ฐ ๊ณผ๊ฑฐ ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์›์‹œ ๊ณ ์† ์•ก์„ธ์Šค ๋ฐ Envio Cloud์—์„œ ๊ด€๋ฆฌํ˜• ํ˜ธ์ŠคํŒ…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. +Envio๋Š” ๋ธ”๋ก์ฒด์ธ ์•ฑ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ GraphQL API๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๋ฐ ๊ณผ๊ฑฐ ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์›์‹œ ๊ณ ์† ์•ก์„ธ์Šค ๋ฐ Envio Cloud์—์„œ ๊ด€๋ฆฌํ˜• ํ˜ธ์ŠคํŒ…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. **๊ธฐ๋Šฅ** - ์‹ค์‹œ๊ฐ„ ๋ฐ ๊ณผ๊ฑฐ ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ -- ์›์‹œ ๊ณ ์† ์•ก์„ธ์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ๋‹จ์ผ GraphQL API +- ์›์‹œ ๊ณ ์† ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•œ ๋‹จ์ผ GraphQL API - Envio Cloud์—์„œ ๊ด€๋ฆฌํ˜• ํ˜ธ์ŠคํŒ… **๋ฌธ์„œ** -Envio์˜ HyperIndex๋Š” RPC๋ฅผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ Stable์„ ํฌํ•จํ•œ ๋ชจ๋“  EVM ์ฒด์ธ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ๋ฑ์‹ฑํ•ฉ๋‹ˆ๋‹ค. +Envio์˜ HyperIndex๋Š” ์ž์ฒด RPC๋ฅผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ Stable์„ ํฌํ•จํ•œ ๋ชจ๋“  EVM ์ฒด์ธ์„ ์ฆ‰์‹œ ์ธ๋ฑ์‹ฑํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. [https://docs.envio.dev/](https://docs.envio.dev/) ### The Graph -75,000๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์ ํŠธ์— ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ถ„์‚ฐํ˜• ์ธ๋ฑ์‹ฑ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. +75,000๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ๋ถ„์‚ฐํ˜• ์ธ๋ฑ์‹ฑ ํ”„๋กœํ† ์ฝœ. **๊ธฐ๋Šฅ** @@ -60,7 +61,7 @@ Envio์˜ HyperIndex๋Š” RPC๋ฅผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ Stable์„ ํฌํ•จ **๋ฌธ์„œ** -๋‹ค์Œ ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ผ ๋ช‡ ๋ถ„ ์•ˆ์— ์„œ๋ธŒ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒ์„ฑ, ๋ฐฐํฌ ๋ฐ ์ฟผ๋ฆฌํ•˜์‹ญ์‹œ์˜ค. +๋‹ค์Œ ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด ๋ช‡ ๋ถ„ ์•ˆ์— ์„œ๋ธŒ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒ์„ฑ, ๋ฐฐํฌ ๋ฐ ์ฟผ๋ฆฌํ•˜์‹ญ์‹œ์˜ค. [https://thegraph.com/docs/en/developing/creating-a-subgraph/](https://thegraph.com/docs/en/developing/creating-a-subgraph/) @@ -70,35 +71,66 @@ Ormi๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ ๊ณผ๊ฑฐ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€๊ทœ๋ชจ๋กœ ์ œ๊ณตํ•˜๋„ **๊ธฐ๋Šฅ** -- ์ฒด์ธ ๋ ๋ถ€๋ถ„ ์ธ๋ฑ์‹ฑ +- ์ฒด์ธ ํŒ ์ธ๋ฑ์‹ฑ - 1์ดˆ ๋ฏธ๋งŒ์˜ ์ฟผ๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„ - ์ฝ”๋“œ ์—†๋Š” ๊ธฐ๋Šฅ **๋ฌธ์„œ** -Ormi๋กœ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”: +Ormi๋กœ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. [https://docs.ormilabs.com/subgraphs/quickstart](https://docs.ormilabs.com/subgraphs/quickstart) -Stable์—์„œ USDT0 ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”. +Stable์—์„œ USDT0 ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค. [https://docs.ormilabs.com/subgraphs/tutorials/query-usdt0](https://docs.ormilabs.com/subgraphs/tutorials/query-usdt0) ### Goldsky -์ฆ‰๊ฐ์ ์ธ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ๋ฐ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ๊ฐ–์ถ˜ ๊ณ ์„ฑ๋Šฅ ์ธ๋ฑ์‹ฑ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. +์ธ์Šคํ„ดํŠธ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ๋ฐ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ๊ฐ–์ถ˜ ๊ณ ์„ฑ๋Šฅ ์ธ๋ฑ์‹ฑ ํ”Œ๋žซํผ. **๊ธฐ๋Šฅ** - ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ - ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์œ„ํ•œ ์›นํ›… ์ƒ์„ฑ -- ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ์˜ ๋‹ค์ค‘ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ๋™๊ธฐํ™” +- ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋‹ค์ค‘ ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ๋™๊ธฐํ™” **๋ฌธ์„œ** [https://docs.goldsky.com/introduction](https://docs.goldsky.com/introduction) -24์‹œ๊ฐ„ ์—ฐ์ค‘๋ฌดํœด ์ง€์›์„ ๋ฐ›์œผ๋ ค๋ฉด [support@goldsky.com](mailto:support@goldsky.com)์œผ๋กœ ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค. +24์‹œ๊ฐ„ ์ง€์›์„ ๋ฐ›์œผ๋ ค๋ฉด [support@goldsky.com](mailto:support@goldsky.com)์œผ๋กœ ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค. + +### SQD + +SQD๋Š” ์›์‹œ ์ฒด์ธ ์ƒํƒœ ๋Œ€์‹  ๋””์ฝ”๋”ฉ๋œ ์Šคํ‚ค๋งˆ ํ˜•์‹์˜ ํ…Œ์ด๋ธ”์„ ๋ฐ˜ํ™˜ํ•˜๋Š” HTTP ์ŠคํŠธ๋ฆฌ๋ฐ API์ธ Portal์„ ํ†ตํ•ด Stable ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์•„์นด์ด๋ธŒ ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ ๋„ ์ธ๋ฑ์‹ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ๋ณ€ํ™˜์ด ํ•„์š”ํ•œ ํŒ€์€ Squid ๋ฐ Pipes SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๋ฑ์„œ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•˜๊ฑฐ๋‚˜ SQD Cloud์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +**๊ธฐ๋Šฅ** + +- ๋‹จ์ผ HTTP ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ†ตํ•œ ๋ธ”๋ก, ํŠธ๋žœ์žญ์…˜ ๋ฐ ๋กœ๊ทธ์˜ ๊ณผ๊ฑฐ ๋ฐ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ +- `stable-mainnet` (์ฒด์ธ ID 988) ๋ฐ `stable-testnet` (์ฒด์ธ ID 2201)์„ ํฌํ•จํ•˜๋Š” ๋””์ฝ”๋”ฉ๋œ ์Šคํ‚ค๋งˆ ํ˜•์‹์˜ ํ…Œ์ด๋ธ” +- Postgres, ClickHouse, MongoDB, SQLite ๋ฐ Parquet์šฉ ์ปค๋„ฅํ„ฐ๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์ธ๋ฑ์„œ์šฉ Squid ๋ฐ Pipes SDK +- ๋ธ”๋ก์€ Portal์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— SQD ๋„คํŠธ์›Œํฌ ์ž‘์—…์ž์— ์˜ํ•ด ๊ฒ€์ฆ๋ฉ๋‹ˆ๋‹ค. + +:::note +Stable ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” SQD์—์„œ ๋น„๊ณต๊ฐœ์ž…๋‹ˆ๋‹ค. ์•ก์„ธ์Šค๋Š” ๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ SQD Private Portal์„ ํ†ตํ•ด ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ณ ๊ฐ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ํ”„๋กœ๋น„์ €๋‹๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋„ท ์ ์šฉ ๋ฒ”์œ„๋Š” ์ œ๋„ค์‹œ์Šค๊ฐ€ ์•„๋‹Œ ๋ธ”๋ก 39,381,701๋ถ€ํ„ฐ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. +::: + +**๋ฌธ์„œ** + +Stable ์ ์šฉ ๋ฒ”์œ„ ์„ธ๋ถ€ ์ •๋ณด, ๋ฐ์ดํ„ฐ ์„ธํŠธ ์Šฌ๋Ÿฌ๊ทธ ๋ฐ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ฝ์–ด๋ณด์„ธ์š”. + +[https://sqd.dev/chains/stable/](https://sqd.dev/chains/stable/) + +Portal์—์„œ ๋””์ฝ”๋”ฉ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜์„ธ์š”. + +[https://docs.sqd.dev/en/portal/evm/quickstart](https://docs.sqd.dev/en/portal/evm/quickstart) + +Pipes SDK๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ๋ฑ์„œ๋ฅผ ๊ตฌ์ถ•ํ•˜์„ธ์š”. + +[https://docs.sqd.dev/en/sdk/pipes-sdk/evm/quickstart](https://docs.sqd.dev/en/sdk/pipes-sdk/evm/quickstart) + +**์‹œ์ž‘ํ•˜๊ธฐ**: Stable ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜๋ ค๋ฉด [SQD์— ๋ฌธ์˜](https://sqd.dev/contact/)ํ•œ ๋‹ค์Œ Portal์—์„œ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ฑฐ๋‚˜ SDK ์ธ๋ฑ์„œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค์‹ญ์‹œ์˜ค. ## 2. ๋ถ„์„ ์ œ๊ณต์—…์ฒด @@ -106,21 +138,21 @@ Stable์—์„œ USDT0 ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด ### Allium -๋ธ”๋ก์ฒด์ธ ์ƒํƒœ๊ณ„ ์ „๋ฐ˜์˜ ์—”์ง€๋‹ˆ์–ด ๋ฐ ๋ถ„์„๊ฐ€๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. +๋ธ”๋ก์ฒด์ธ ์ƒํƒœ๊ณ„ ์ „๋ฐ˜์˜ ์—”์ง€๋‹ˆ์–ด ๋ฐ ๋ถ„์„๊ฐ€๋ฅผ ์œ„ํ•œ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. **๊ธฐ๋Šฅ** -- ์ •๊ทœํ™”๋œ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ์…‹ +- ์ •๊ทœํ™”๋œ ๋ธ”๋ก์ฒด์ธ ๋ฐ์ดํ„ฐ ์„ธํŠธ - ๋ถ„์„ ํŒ€์„ ์œ„ํ•œ ์ฟผ๋ฆฌ ๋„๊ตฌ - ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐ์ดํ„ฐ ์ธํ”„๋ผ **๋ฌธ์„œ** -Allium์˜ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๋ฐ API ๋ฆฌ์†Œ์Šค ์‹œ์ž‘ํ•˜๊ธฐ: +Allium์˜ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๋ฐ API ๋ฆฌ์†Œ์Šค๋ฅผ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. [https://www.allium.so/](https://www.allium.so/) -**์‹œ์ž‘ํ•˜๊ธฐ**: [allium.so](https://www.allium.so/)์—์„œ ๊ฐ€์ž…ํ•˜์—ฌ API ์•ก์„ธ์Šค๋ฅผ ๋ฐ›์€ ๋‹ค์Œ REST API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๊ทœํ™”๋œ Stable ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ์…‹์„ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +**์‹œ์ž‘ํ•˜๊ธฐ**: [allium.so](https://www.allium.so/)์—์„œ ๊ฐ€์ž…ํ•˜์—ฌ API ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์–ป์€ ๋‹ค์Œ REST API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๊ทœํ™”๋œ Stable ์˜จ์ฒด์ธ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ฟผ๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ### CoinMarketCap @@ -128,17 +160,17 @@ Allium์˜ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๋ฐ API ๋ฆฌ์†Œ์Šค ์‹œ์ž‘ํ•˜๊ธฐ: **๊ธฐ๋Šฅ** -- Stable ์ž์‚ฐ์— ๋Œ€ํ•œ ๊ฐ€๊ฒฉ ์ถ”์  +- Stable ์ž์‚ฐ์˜ ๊ฐ€๊ฒฉ ์ถ”์  - ํฌํŠธํด๋ฆฌ์˜ค ๋„๊ตฌ - ์‹œ์žฅ ๋ฐ์ดํ„ฐ API **๋ฌธ์„œ** -CMC API ๋ฐ ํ†ตํ•ฉ ๋ฆฌ์†Œ์Šค ํƒ์ƒ‰: +CMC API ๋ฐ ํ†ตํ•ฉ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. [https://coinmarketcap.com/api/](https://coinmarketcap.com/api/) -**์‹œ์ž‘ํ•˜๊ธฐ**: [coinmarketcap.com/api](https://coinmarketcap.com/api/)์—์„œ API ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜๊ณ  REST API๋ฅผ ํ†ตํ•ด Stable ์ž์‚ฐ ๊ฐ€๊ฒฉ ๋ฐ ์‹œ์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +**์‹œ์ž‘ํ•˜๊ธฐ**: [coinmarketcap.com/api](https://coinmarketcap.com/api/)์—์„œ API ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜๊ณ  REST API๋ฅผ ํ†ตํ•ด Stable ์ž์‚ฐ ๊ฐ€๊ฒฉ ๋ฐ ์‹œ์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ### CoinGecko @@ -146,39 +178,39 @@ CMC API ๋ฐ ํ†ตํ•ฉ ๋ฆฌ์†Œ์Šค ํƒ์ƒ‰: **๊ธฐ๋Šฅ** -- ์‹œ์žฅ ๋ชฉ๋ก ๋ฐ ๊ฐ€๊ฒฉ ๋ฐ์ดํ„ฐ +- ์‹œ์žฅ ์ƒ์žฅ ๋ฐ ๊ฐ€๊ฒฉ ๋ฐ์ดํ„ฐ - ๊ณผ๊ฑฐ ๋ถ„์„ -- ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ API ์•ก์„ธ์Šค +- ๊ฐœ๋ฐœ์ž์šฉ API ์•ก์„ธ์Šค **๋ฌธ์„œ** -CoinGecko์˜ API ๋ฌธ์„œ ์•ก์„ธ์Šค: +CoinGecko์˜ API ๋ฌธ์„œ๋ฅผ ์•ก์„ธ์Šคํ•˜์‹ญ์‹œ์˜ค. [https://www.coingecko.com/en/api](https://www.coingecko.com/en/api) -**์‹œ์ž‘ํ•˜๊ธฐ**: [coingecko.com/en/api](https://www.coingecko.com/en/api)์—์„œ ๋ฌด๋ฃŒ ๋˜๋Š” Pro API ํ‚ค๋ฅผ ์–ป๊ณ  REST API๋ฅผ ํ†ตํ•ด Stable ํ† ํฐ ๊ฐ€๊ฒฉ ๋ฐ ์‹œ์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +**์‹œ์ž‘ํ•˜๊ธฐ**: [coingecko.com/en/api](https://www.coingecko.com/en/api)์—์„œ ๋ฌด๋ฃŒ ๋˜๋Š” Pro API ํ‚ค๋ฅผ ์–ป๊ณ  REST API๋ฅผ ํ†ตํ•ด Stable ํ† ํฐ ๊ฐ€๊ฒฉ ๋ฐ ์‹œ์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ### Dexscreener -๋ถ„์‚ฐํ˜• ๊ฑฐ๋ž˜์†Œ๋ฅผ ์œ„ํ•œ ์‹ค์‹œ๊ฐ„ ์ฐจํŠธ ๋ฐ ๋ถ„์„. +ํƒˆ์ค‘์•™ํ™” ์žฅ์†Œ๋ฅผ ์œ„ํ•œ ์‹ค์‹œ๊ฐ„ ์ฐจํŠธ ๋ฐ ๋ถ„์„. **๊ธฐ๋Šฅ** -- ๋ผ์ด๋ธŒ DEX ์ฐจํŠธ +- ์‹ค์‹œ๊ฐ„ DEX ์ฐจํŠธ - ์œ ๋™์„ฑ ๋ฐ ํŽ˜์–ด ๋ถ„์„ -- ๊ฑฐ๋ž˜ ๋Œ€์‹œ๋ณด๋“œ +- ํŠธ๋ ˆ์ด๋”ฉ ๋Œ€์‹œ๋ณด๋“œ **๋ฌธ์„œ** -Dexscreener์˜ API ์—”๋“œํฌ์ธํŠธ ๋ฐ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ํƒ์ƒ‰: +Dexscreener์˜ API ์—”๋“œํฌ์ธํŠธ ๋ฐ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. [https://docs.dexscreener.com/](https://docs.dexscreener.com/) -**์‹œ์ž‘ํ•˜๊ธฐ**: [Dexscreener API ๋ฌธ์„œ](https://docs.dexscreener.com/)๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ Stable ๊ธฐ๋ฐ˜ DEX ํ’€์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํŽ˜์–ด ๋ฐ์ดํ„ฐ, ์œ ๋™์„ฑ ๋ฐ ๊ฑฐ๋ž˜ ํ™œ๋™์„ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +**์‹œ์ž‘ํ•˜๊ธฐ**: [Dexscreener API ๋ฌธ์„œ](https://docs.dexscreener.com/)๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ Stable ๊ธฐ๋ฐ˜ DEX ํ’€์˜ ์‹ค์‹œ๊ฐ„ ํŽ˜์–ด ๋ฐ์ดํ„ฐ, ์œ ๋™์„ฑ ๋ฐ ๊ฑฐ๋ž˜ ํ™œ๋™์„ ์ฟผ๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ### DeBank -์ด๋”๋ฆฌ์›€ ๋ฐ EVM ์ƒํƒœ๊ณ„๋ฅผ ์œ„ํ•œ ํฌํŠธํด๋ฆฌ์˜ค ํŠธ๋ž˜์ปค์ž…๋‹ˆ๋‹ค. +์ด๋”๋ฆฌ์›€ ๋ฐ EVM ์ƒํƒœ๊ณ„๋ฅผ ์œ„ํ•œ ํฌํŠธํด๋ฆฌ์˜ค ์ถ”์ ๊ธฐ. **๊ธฐ๋Šฅ** @@ -188,11 +220,11 @@ Dexscreener์˜ API ์—”๋“œํฌ์ธํŠธ ๋ฐ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ํƒ์ƒ‰: **๋ฌธ์„œ** -DeBank์˜ API ์ฐธ์กฐ ๋ฐ ํ†ตํ•ฉ ๋ฌธ์„œ ์ฝ๊ธฐ: +DeBank์˜ API ์ฐธ์กฐ ๋ฐ ํ†ตํ•ฉ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด์‹ญ์‹œ์˜ค. [https://docs.debank.com/](https://docs.debank.com/) -**์‹œ์ž‘ํ•˜๊ธฐ**: [DeBank Cloud](https://cloud.debank.com/)์— ๊ฐ€์ž…ํ•˜์—ฌ API ํ‚ค์— ์•ก์„ธ์Šคํ•˜๊ณ  Stable ์ง€๊ฐ‘ ์ž”์•ก, ๊ฑฐ๋ž˜ ๋‚ด์—ญ ๋ฐ ํฌํŠธํด๋ฆฌ์˜ค ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +**์‹œ์ž‘ํ•˜๊ธฐ**: [DeBank Cloud](https://cloud.debank.com/)์— ๊ฐ€์ž…ํ•˜์—ฌ API ํ‚ค์— ์•ก์„ธ์Šคํ•˜๊ณ  Stable ์ง€๊ฐ‘ ์ž”์•ก, ๊ฑฐ๋ž˜ ๋‚ด์—ญ ๋ฐ ํฌํŠธํด๋ฆฌ์˜ค ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ## 3. ๊ทœ์ • ์ค€์ˆ˜ ๋ฐ ์กฐ์‚ฌ @@ -200,9 +232,9 @@ DeBank์˜ API ์ฐธ์กฐ ๋ฐ ํ†ตํ•ฉ ๋ฌธ์„œ ์ฝ๊ธฐ: ### Chainalysis -Chainalysis๋Š” KYT, ์—”ํ‹ฐํ‹ฐ ์Šคํฌ๋ฆฌ๋‹ ์ œํ’ˆ ๋ฐ Reactor๋ฅผ ํ†ตํ•ด Stable์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. +Chainalysis๋Š” [KYT](https://www.chainalysis.com/product/kyt/), ์—”ํ‹ฐํ‹ฐ ์Šคํฌ๋ฆฌ๋‹ ์ œํ’ˆ ๋ฐ [Reactor](https://www.chainalysis.com/product/reactor/)๋ฅผ ํ†ตํ•ด Stable์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. -Stable์— ๋ฐฐํฌ๋œ ์ƒˆ๋กœ์šด ๋Œ€์ฒด ๊ฐ€๋Šฅ ๋ฐ ๋Œ€์ฒด ๋ถˆ๊ฐ€๋Šฅ ํ† ํฐ์€ ERC-20 ๋ฐ ERC-721๊ณผ ๊ฐ™์€ ์ฃผ์š” ํ‘œ์ค€์„ ๋”ฐ๋ฅด๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. +Stable์— ๋ฐฐํฌ๋œ ์ƒˆ๋กœ์šด ๋Œ€์ฒด ๊ฐ€๋Šฅ ๋ฐ ๋น„๋Œ€์ฒด ๊ฐ€๋Šฅ ํ† ํฐ์€ ERC-20 ๋ฐ ERC-721๊ณผ ๊ฐ™์€ ์ฃผ์š” ํ‘œ์ค€์„ ๋”ฐ๋ฅด๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. **๊ธฐ๋Šฅ** @@ -213,10 +245,10 @@ Stable์— ๋ฐฐํฌ๋œ ์ƒˆ๋กœ์šด ๋Œ€์ฒด ๊ฐ€๋Šฅ ๋ฐ ๋Œ€์ฒด ๋ถˆ๊ฐ€๋Šฅ ํ† ํฐ์€ ERC-2 **๋ฌธ์„œ** -์ ์šฉ ๋ฒ”์œ„ ์„ธ๋ถ€ ์ •๋ณด๋Š” [Stable ํ†ตํ•ฉ ๋ฐœํ‘œ](https://www.chainalysis.com/blog/stable-automatic-token-support/)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. +์ ์šฉ ๋ฒ”์œ„ ์„ธ๋ถ€ ์ •๋ณด๋Š” [Stable ํ†ตํ•ฉ ๋ฐœํ‘œ](https://www.chainalysis.com/blog/stable-automatic-token-support/)๋ฅผ ์ฝ์–ด๋ณด์‹ญ์‹œ์˜ค. [Chainalysis ๋ฐ๋ชจ ์š”์ฒญ](https://www.chainalysis.com/request-a-demo/). --- -Stable์„ ํ†ตํ•ฉํ•˜๋Š” ์ธ๋ฑ์‹ฑ, ๋ถ„์„, ๊ทœ์ • ์ค€์ˆ˜ ๋˜๋Š” ์กฐ์‚ฌ ํ”Œ๋žซํผ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? [bizdev@stable.xyz](mailto:bizdev@stable.xyz)๋กœ ๋ฌธ์˜ํ•ด ์ฃผ์‹ญ์‹œ์˜ค. +Stable์„ ํ†ตํ•ฉํ•˜๋Š” ์ธ๋ฑ์‹ฑ, ๋ถ„์„, ๊ทœ์ • ์ค€์ˆ˜ ๋˜๋Š” ์กฐ์‚ฌ ํ”Œ๋žซํผ์„ ๊ฐ€์ง€๊ณ  ๊ณ„์‹ ๊ฐ€์š”? [bizdev@stable.xyz](mailto:bizdev@stable.xyz)๋กœ ๋ฌธ์˜ํ•ด ์ฃผ์„ธ์š”. diff --git a/docs/pages/ko/reference/node-operations-overview.mdx b/docs/pages/ko/reference/node-operations-overview.mdx index daf3b2d..31f8219 100755 --- a/docs/pages/ko/reference/node-operations-overview.mdx +++ b/docs/pages/ko/reference/node-operations-overview.mdx @@ -1,71 +1,71 @@ --- source_path: reference/node-operations-overview.mdx -source_sha: 292d91190bd4c06f8a2e4e87f9253a9bb856c28a -title: "์šด์˜" -description: "Stable ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”. ์„ค์น˜, ๊ตฌ์„ฑ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ." +source_sha: 834cf7cad55269092423973290344330f70a4a77 +title: "Stable ๋…ธ๋“œ ์‹คํ–‰ํ•˜๊ธฐ" +description: "Stable ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜, ๊ตฌ์„ฑ, ๋ชจ๋‹ˆํ„ฐ๋ง, ์—…๊ทธ๋ ˆ์ด๋“œ." diataxis: "reference" --- -# ์šด์˜ +# Stable ๋…ธ๋“œ ์‹คํ–‰ํ•˜๊ธฐ -์šด์˜์€ Stable ๋…ธ๋“œ ์‹คํ–‰์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค: ํ’€ ๋…ธ๋“œ ๋˜๋Š” ์•„์นด์ด๋ธŒ ๋…ธ๋“œ, ํ…Œ์ŠคํŠธ๋„ท ๋˜๋Š” ๋ฉ”์ธ๋„ท, ์„ค์น˜๋ถ€ํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง๊นŒ์ง€. ๋…ธ๋“œ๊ฐ€ ์ ์šฉํ•˜๋Š” ์ฒด์ธ ์ˆ˜์ค€ ๋™์ž‘(์ˆ˜์ˆ˜๋ฃŒ ๋ชจ๋ธ, ํŒŒ์ด๋„๋ฆฌํ‹ฐ, ๊ฐ€์Šค๋กœ์„œ์˜ USDT0)์— ๋Œ€ํ•ด์„œ๋Š” [๊ฐ€์Šค ๊ฐ€๊ฒฉ ์ฑ…์ •](/ko/explanation/gas-pricing), [ํŒŒ์ด๋„๋ฆฌํ‹ฐ](/ko/explanation/finality), [์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”](/ko/explanation/core-optimization-overview)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. +์ด ์„น์…˜์—์„œ๋Š” Stable ๋…ธ๋“œ(ํ’€ ๋…ธ๋“œ ๋˜๋Š” ์•„์นด์ด๋ธŒ ๋…ธ๋“œ, ํ…Œ์ŠคํŠธ๋„ท ๋˜๋Š” ๋ฉ”์ธ๋„ท)๋ฅผ ์„ค์น˜๋ถ€ํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง๊นŒ์ง€ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ€ ์ ์šฉํ•˜๋Š” ์ฒด์ธ ์ˆ˜์ค€ ๋™์ž‘(์ˆ˜์ˆ˜๋ฃŒ ๋ชจ๋ธ, ์ตœ์ข…์„ฑ, USDT0๋ฅผ ๊ฐ€์Šค๋กœ ์‚ฌ์šฉ)์— ๋Œ€ํ•ด์„œ๋Š” [๊ฐ€์Šค ๊ฐ€๊ฒฉ ์ฑ…์ •](/ko/explanation/gas-pricing), [์ตœ์ข…์„ฑ](/ko/explanation/finality) ๋ฐ [์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”](/ko/explanation/core-optimization-overview)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ## ๋น ๋ฅธ ๋งํฌ -- **[์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ](/ko/reference/node-system-requirements)** - ๋‹ค์–‘ํ•œ ๋…ธ๋“œ ์œ ํ˜•์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์š”๊ตฌ์‚ฌํ•ญ +- **[์‹œ์Šคํ…œ ์š”๊ตฌ ์‚ฌํ•ญ](/ko/reference/node-system-requirements)** - ๋‹ค์–‘ํ•œ ๋…ธ๋“œ ์œ ํ˜•์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ - **[์„ค์น˜ ๊ฐ€์ด๋“œ](/ko/how-to/install-node)** - ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ๋‹จ๊ณ„๋ณ„ ์„ค์น˜ ์ง€์นจ -- **[๊ตฌ์„ฑ](/ko/reference/node-configuration)** - ์ƒ์„ธํ•œ ๊ตฌ์„ฑ ์˜ต์…˜ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€ +- **[๊ตฌ์„ฑ](/ko/reference/node-configuration)** - ์ž์„ธํ•œ ๊ตฌ์„ฑ ์˜ต์…˜ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€ - **[์Šค๋ƒ…์ƒท ๋ฐ ๋™๊ธฐํ™”](/ko/how-to/use-node-snapshots)** - ์Šค๋ƒ…์ƒท์„ ์‚ฌ์šฉํ•œ ๋น ๋ฅธ ๋™๊ธฐํ™” ์˜ต์…˜ -- **[๋ฐธ๋ฆฌ๋ฐ์ดํ„ฐ ์ƒ์„ฑ](/ko/how-to/run-validator)** - ๋™๊ธฐํ™”๋œ ๋…ธ๋“œ๋ฅผ ๋ฐธ๋ฆฌ๋ฐ์ดํ„ฐ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์ž์ฒด ์œ„์ž„ +- **[๊ฒ€์ฆ์ธ ์ƒ์„ฑ](/ko/how-to/run-validator)** - ๋™๊ธฐํ™”๋œ ๋…ธ๋“œ๋ฅผ ๊ฒ€์ฆ์ธ์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์ž์ฒด ์œ„์ž„ - **[์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ](/ko/how-to/upgrade-node)** - ๋…ธ๋“œ ์—…๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ ๋ฐ ๋ฒ„์ „ ๊ธฐ๋ก -- **[๋ชจ๋‹ˆํ„ฐ๋ง](/ko/how-to/monitor-node)** - ๋…ธ๋“œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋„๊ตฌ ๋ฐ ๋ฉ”ํŠธ๋ฆญ -- **[๋ฌธ์ œ ํ•ด๊ฒฐ](/ko/how-to/troubleshoot-node)** - ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ๋ฐ ํ•ด๊ฒฐ์ฑ… +- **[๋ชจ๋‹ˆํ„ฐ๋ง](/ko/how-to/monitor-node)** - ๋…ธ๋“œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋„๊ตฌ ๋ฐ ์ง€ํ‘œ +- **[๋ฌธ์ œ ํ•ด๊ฒฐ](/ko/how-to/troubleshoot-node)** - ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• -`stabled`๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ์ฒด์ธ์—์„œ ๋ฐธ๋ฆฌ๋ฐ์ดํ„ฐ ๋ฐ์ดํ„ฐ(์Šคํ…Œ์ดํฌ, ๊ฐ€๋™ ์‹œ๊ฐ„, ํˆฌํ‘œ ๊ธฐ๋ก)๋ฅผ ์ฝ์œผ๋ ค๋ฉด [๋ฐธ๋ฆฌ๋ฐ์ดํ„ฐ ๋ฐ์ดํ„ฐ ์ธ๋ฑ์‹ฑ](/ko/how-to/index-validator-data)์„ ์ฐธ์กฐํ•˜์„ธ์š”. +`stabled`๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ์ฒด์ธ์—์„œ ๊ฒ€์ฆ์ธ ๋ฐ์ดํ„ฐ(์Šคํ…Œ์ดํฌ, ๊ฐ€๋™ ์‹œ๊ฐ„, ํˆฌํ‘œ ๊ธฐ๋ก)๋ฅผ ์ฝ์œผ๋ ค๋ฉด [๊ฒ€์ฆ์ธ ๋ฐ์ดํ„ฐ ์ธ๋ฑ์‹ฑ](/ko/how-to/index-validator-data)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ## ๋…ธ๋“œ ์œ ํ˜• ### ํ’€ ๋…ธ๋“œ -ํ’€ ๋…ธ๋“œ๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ์™„์ „ํ•œ ๋ณต์‚ฌ๋ณธ์„ ์œ ์ง€ํ•˜๋ฉฐ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜๊ณผ ๋ธ”๋ก์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ํ’€ ๋…ธ๋“œ๋Š”: -- ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜๊ณผ ๋ธ”๋ก์„ ๊ฒ€์ฆ -- ์ „์ฒด ๋ธ”๋ก์ฒด์ธ ๊ธฐ๋ก์„ ์œ ์ง€ -- ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Œ -- ๋„คํŠธ์›Œํฌ์˜ ํƒˆ์ค‘์•™ํ™”๋ฅผ ์ง€์› +ํ’€ ๋…ธ๋“œ๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ์™„์ „ํ•œ ๋ณต์‚ฌ๋ณธ์„ ์œ ์ง€ํ•˜๊ณ  ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜๊ณผ ๋ธ”๋ก์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ํ’€ ๋…ธ๋“œ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. +- ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜ ๋ฐ ๋ธ”๋ก ๊ฒ€์ฆ +- ์ „์ฒด ๋ธ”๋ก์ฒด์ธ ๊ธฐ๋ก ์œ ์ง€ +- ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ ์ œ๊ณต ๊ฐ€๋Šฅ +- ๋„คํŠธ์›Œํฌ์˜ ๋ถ„์‚ฐํ™” ์ง€์› ### ์•„์นด์ด๋ธŒ ๋…ธ๋“œ -์•„์นด์ด๋ธŒ ๋…ธ๋“œ๋Š” ๋ชจ๋“  ์ƒํƒœ์˜ ์™„์ „ํ•œ ๊ธฐ๋ก์„ ์ €์žฅํ•˜๋ฉฐ ๊ณผ๊ฑฐ ์ฟผ๋ฆฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์นด์ด๋ธŒ ๋…ธ๋“œ๋Š”: -- ๋ชจ๋“  ๊ณผ๊ฑฐ ์ƒํƒœ๋ฅผ ์ €์žฅ -- ๋ชจ๋“  ๋ธ”๋ก ๋†’์ด์—์„œ ๊ณผ๊ฑฐ ์ฟผ๋ฆฌ๋ฅผ ์ง€์› -- ์ƒ๋‹นํžˆ ๋” ๋งŽ์€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์š”๊ตฌ +์•„์นด์ด๋ธŒ ๋…ธ๋“œ๋Š” ๋ชจ๋“  ์ƒํƒœ์˜ ์ „์ฒด ๊ธฐ๋ก์„ ์ €์žฅํ•˜๊ณ  ๊ธฐ๋ก ์ฟผ๋ฆฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์นด์ด๋ธŒ ๋…ธ๋“œ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. +- ๋ชจ๋“  ๊ธฐ๋ก ์ƒํƒœ ์ €์žฅ +- ๋ชจ๋“  ๋ธ”๋ก ๋†’์ด์—์„œ ๊ธฐ๋ก ์ฟผ๋ฆฌ ์ง€์› +- ํ›จ์”ฌ ๋” ๋งŽ์€ ์ €์žฅ ๊ณต๊ฐ„ ํ•„์š” - ๋ธ”๋ก ํƒ์ƒ‰๊ธฐ ๋ฐ ๋ถ„์„์— ํ•„์ˆ˜์  ## ๋„คํŠธ์›Œํฌ ์ •๋ณด -RPC ์—”๋“œํฌ์ธํŠธ, ๋ธ”๋ก ํƒ์ƒ‰๊ธฐ, ์ฒด์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ๋„คํŠธ์›Œํฌ ์„ธ๋ถ€ ์ •๋ณด๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”: +RPC ์—”๋“œํฌ์ธํŠธ, ๋ธ”๋ก ํƒ์ƒ‰๊ธฐ ๋ฐ ์ฒด์ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ๋„คํŠธ์›Œํฌ ์„ธ๋ถ€ ์ •๋ณด๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. - **[๋ฉ”์ธ๋„ท](/ko/reference/mainnet-information)** - ๋ฉ”์ธ๋„ท ์„ธ๋ถ€ ์ •๋ณด - **[ํ…Œ์ŠคํŠธ๋„ท](/ko/reference/testnet-information)** - ํ…Œ์ŠคํŠธ๋„ท ์„ธ๋ถ€ ์ •๋ณด ## ์ง€์› ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ -- **Discord**: [Stable Discord ์ฐธ์—ฌํ•˜๊ธฐ](https://discord.gg/stablexyz) +- **Discord**: [Stable Discord ๊ฐ€์ž…ํ•˜๊ธฐ](https://discord.gg/stablexyz) ## ๋น ๋ฅธ ์‹œ์ž‘ -๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ ์ž ํ•˜๋Š” ์ˆ™๋ จ๋œ ์šด์˜์ž๋ฅผ ์œ„ํ•ด: +๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜๋ ค๋Š” ์ˆ™๋ จ๋œ ์šด์˜์ž๋ฅผ ์œ„ํ•œ ์ •๋ณด: -1. [์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ](/ko/reference/node-system-requirements) ํ™•์ธ +1. [์‹œ์Šคํ…œ ์š”๊ตฌ ์‚ฌํ•ญ](/ko/reference/node-system-requirements) ํ™•์ธ 2. [์„ค์น˜ ๊ฐ€์ด๋“œ](/ko/how-to/install-node) ๋”ฐ๋ฅด๊ธฐ 3. [๊ตฌ์„ฑ ๊ฐ€์ด๋“œ](/ko/reference/node-configuration)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ ๊ตฌ์„ฑ 4. [์Šค๋ƒ…์ƒท](/ko/how-to/use-node-snapshots)์œผ๋กœ ๋™๊ธฐํ™” ์†๋„ ํ–ฅ์ƒ 5. [๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ€์ด๋“œ](/ko/how-to/monitor-node)๋กœ ๋…ธ๋“œ ๋ชจ๋‹ˆํ„ฐ๋ง -๋„คํŠธ์›Œํฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ RPC ์—”๋“œํฌ์ธํŠธ๋Š” [๋ฉ”์ธ๋„ท ์ •๋ณด](/ko/reference/mainnet-information) ๋˜๋Š” [ํ…Œ์ŠคํŠธ๋„ท ์ •๋ณด](/ko/reference/testnet-information)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. +๋„คํŠธ์›Œํฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ RPC ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•ด์„œ๋Š” [๋ฉ”์ธ๋„ท ์ •๋ณด](/ko/reference/mainnet-information) ๋˜๋Š” [ํ…Œ์ŠคํŠธ๋„ท ์ •๋ณด](/ko/reference/testnet-information)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. -## ๋…ธ๋“œ ์šด์˜์ด ์ฒด์ธ๊ณผ ์—ฐ๊ฒฐ๋˜๋Š” ๋ฐฉ์‹ +## ๋…ธ๋“œ ์šด์˜์ž๊ฐ€ ์ฒด์ธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• -๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์€ Stable์˜ ์ฒด์ธ ์ˆ˜์ค€ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํŽ˜์ด์ง€์—์„œ๋Š” ๋…ธ๋“œ๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ๋™์ž‘์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค: +๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์€ Stable์˜ ์ฒด์ธ ์ˆ˜์ค€ ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๋…ธ๋“œ๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ๋™์ž‘์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. -- **[์ปจํŠธ๋ž™ํŠธ ๊ฐœ์š”](/ko/explanation/contracts-overview)** ๋Š” ๋…ธ๋“œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ˆ˜์ˆ˜๋ฃŒ ๋ชจ๋ธ, JSON-RPC ํ‘œ๋ฉด, ์‹œ์Šคํ…œ ๋ชจ๋“ˆ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. -- **[ํŒŒ์ด๋„๋ฆฌํ‹ฐ](/ko/explanation/finality)** ๋Š” ๋‹จ์ผ ์Šฌ๋กฏ ํŒŒ์ด๋„๋ฆฌํ‹ฐ์™€ ํ•ฉ์˜ ๊ณ„์ธต์—์„œ "ํ™•์ •"์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. -- **[์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”](/ko/explanation/core-optimization-overview)** ๋Š” ํ•ฉ์˜, ์‹คํ–‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, RPC ๊ณ„์ธต์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. -- **[๊ฐ€์Šค ๊ฐ€๊ฒฉ ์ฑ…์ •](/ko/explanation/gas-pricing)** ์€ USDT0 ๋‹จ์œ„ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฑ…์ •๋˜๊ณ  ์ง•์ˆ˜๋˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. +- **[์ปจํŠธ๋ž™ํŠธ ๊ฐœ์š”](/ko/explanation/contracts-overview)**๋Š” ์ˆ˜์ˆ˜๋ฃŒ ๋ชจ๋ธ, JSON-RPC ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ๋…ธ๋“œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ ๋ชจ๋“ˆ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. +- **[์ตœ์ข…์„ฑ](/ko/explanation/finality)**์€ ๋‹จ์ผ ์Šฌ๋กฏ ์ตœ์ข…์„ฑ๊ณผ ํ•ฉ์˜ ๊ณ„์ธต์—์„œ "ํ™•์ •๋จ"์˜ ์˜๋ฏธ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. +- **[์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”](/ko/explanation/core-optimization-overview)**๋Š” ํ•ฉ์˜, ์‹คํ–‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ RPC ๊ณ„์ธต์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. +- **[๊ฐ€์Šค ๊ฐ€๊ฒฉ ์ฑ…์ •](/ko/explanation/gas-pricing)**์€ USDT0์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฑ…์ •๋˜๊ณ  ์ง•์ˆ˜๋˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. diff --git a/docs/sidebar.json b/docs/sidebar.json index 6423545..09ffbcf 100644 --- a/docs/sidebar.json +++ b/docs/sidebar.json @@ -178,62 +178,6 @@ "text": "Quick Start", "link": "/en/tutorial/quick-start" }, - { - "text": "Stable SDK", - "collapsed": true, - "items": [ - { - "text": "Overview", - "link": "/en/explanation/sdk-overview" - }, - { - "text": "Quickstart", - "link": "/en/tutorial/sdk-quickstart" - }, - { - "text": "Reference", - "link": "/en/reference/sdk" - }, - { - "text": "Earn Yield", - "link": "/en/how-to/earn-yield" - }, - { - "text": "Viem Integration", - "link": "/en/how-to/sdk-with-viem" - }, - { - "text": "Wagmi Integration", - "link": "/en/how-to/sdk-with-wagmi" - } - ] - }, - { - "text": "Enterprise SDK", - "collapsed": true, - "items": [ - { - "text": "Overview", - "link": "/en/explanation/enterprise-sdk" - }, - { - "text": "Relay Transactions", - "link": "/en/how-to/relay-with-gas-waiver" - }, - { - "text": "Guaranteed Blockspace", - "link": "/en/how-to/send-guaranteed-transactions" - }, - { - "text": "Guaranteed Relayed Transactions", - "link": "/en/how-to/guaranteed-relayed-transactions" - }, - { - "text": "Reference", - "link": "/en/reference/enterprise-sdk" - } - ] - }, { "text": "Onboard users", "collapsed": true, @@ -583,7 +527,73 @@ ] }, { - "text": "Operate", + "text": "Tools and SDK", + "collapsed": true, + "items": [ + { + "text": "Tools and SDK overview", + "link": "/en/explanation/tools-overview" + }, + { + "text": "Stable SDK", + "collapsed": true, + "items": [ + { + "text": "Overview", + "link": "/en/explanation/sdk-overview" + }, + { + "text": "Quickstart", + "link": "/en/tutorial/sdk-quickstart" + }, + { + "text": "Reference", + "link": "/en/reference/sdk" + }, + { + "text": "Earn Yield", + "link": "/en/how-to/earn-yield" + }, + { + "text": "Viem Integration", + "link": "/en/how-to/sdk-with-viem" + }, + { + "text": "Wagmi Integration", + "link": "/en/how-to/sdk-with-wagmi" + } + ] + }, + { + "text": "Enterprise SDK", + "collapsed": true, + "items": [ + { + "text": "Overview", + "link": "/en/explanation/enterprise-sdk" + }, + { + "text": "Relay Transactions", + "link": "/en/how-to/relay-with-gas-waiver" + }, + { + "text": "Guaranteed Blockspace", + "link": "/en/how-to/send-guaranteed-transactions" + }, + { + "text": "Guaranteed Relayed Transactions", + "link": "/en/how-to/guaranteed-relayed-transactions" + }, + { + "text": "Reference", + "link": "/en/reference/enterprise-sdk" + } + ] + } + ] + }, + { + "text": "Run a Stable node", "collapsed": true, "items": [ { @@ -725,15 +735,15 @@ "link": "/ko/explanation/ethereum-compatibility" }, { - "text": "์™„๊ฒฐ์„ฑ", + "text": "์ตœ์ข…์„ฑ", "link": "/ko/explanation/finality" }, { - "text": "๊ฐ€์Šค ๊ฐ€๊ฒฉ", + "text": "๊ฐ€์Šค ๊ฐ€๊ฒฉ ์ฑ…์ •", "link": "/ko/explanation/gas-pricing" }, { - "text": "๊ฐ€์Šค ๊ฐ€๊ฒฉ API", + "text": "๊ฐ€์Šค ๊ฐ€๊ฒฉ ์ฑ…์ • API", "link": "/ko/reference/gas-pricing-api" }, { @@ -755,7 +765,7 @@ "link": "/ko/explanation/flow-of-funds" }, { - "text": "USDT0 Stable ๋ธŒ๋ฆฌ์ง•", + "text": "USDT0๋ฅผ Stable๋กœ ๋ธŒ๋ฆฌ์ง•", "link": "/ko/explanation/usdt0-bridging" }, { @@ -763,7 +773,7 @@ "link": "/ko/explanation/bridge-security" }, { - "text": "USDT0 ๊ฐ€์Šค", + "text": "๊ฐ€์Šค๋กœ์„œ์˜ USDT0", "link": "/ko/explanation/usdt-as-gas-token" }, { @@ -779,7 +789,7 @@ "link": "/ko/explanation/guaranteed-blockspace" }, { - "text": "USDT ์ „์†ก ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ", + "text": "USDT ์ „์†ก Aggregator", "link": "/ko/explanation/usdt-transfer-aggregator" }, { @@ -823,25 +833,25 @@ "collapsed": true, "items": [ { - "text": "๊ฒฐ์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€", + "text": "์‚ฌ์šฉ ์‚ฌ๋ก€: ๊ฒฐ์ œ", "link": "/ko/explanation/use-case-payments" }, { - "text": "๊ธ‰์—ฌ ์‚ฌ์šฉ ์‚ฌ๋ก€", + "text": "์‚ฌ์šฉ ์‚ฌ๋ก€: ๊ธ‰์—ฌ", "link": "/ko/explanation/use-case-payroll" }, { - "text": "์Šคํฐ์„œ ์‚ฌ์šฉ ์‚ฌ๋ก€", + "text": "์‚ฌ์šฉ ์‚ฌ๋ก€: ํ›„์›", "link": "/ko/explanation/use-case-sponsored" }, { - "text": "๊ฐ€์ƒ ์‚ฌ์šฉ ์‚ฌ๋ก€", + "text": "์‚ฌ์šฉ ์‚ฌ๋ก€: ๋น„๊ณต๊ฐœ", "link": "/ko/explanation/use-case-private" } ] }, { - "text": "ํ† ํฐ๋…ธ๋ฏน์Šค", + "text": "ํ† ํฐ ๊ฒฝ์ œํ•™", "link": "/ko/reference/tokenomics" }, { @@ -866,62 +876,6 @@ "text": "๋น ๋ฅธ ์‹œ์ž‘", "link": "/ko/tutorial/quick-start" }, - { - "text": "Stable SDK", - "collapsed": true, - "items": [ - { - "text": "๊ฐœ์š”", - "link": "/ko/explanation/sdk-overview" - }, - { - "text": "๋น ๋ฅธ ์‹œ์ž‘", - "link": "/ko/tutorial/sdk-quickstart" - }, - { - "text": "์ฐธ์กฐ", - "link": "/ko/reference/sdk" - }, - { - "text": "์ˆ˜์ต ์ฐฝ์ถœ", - "link": "/ko/how-to/earn-yield" - }, - { - "text": "viem ํ†ตํ•ฉ", - "link": "/ko/how-to/sdk-with-viem" - }, - { - "text": "wagmi ํ†ตํ•ฉ", - "link": "/ko/how-to/sdk-with-wagmi" - } - ] - }, - { - "text": "์—”ํ„ฐํ”„๋ผ์ด์ฆˆ SDK", - "collapsed": true, - "items": [ - { - "text": "๊ฐœ์š”", - "link": "/ko/explanation/enterprise-sdk" - }, - { - "text": "ํŠธ๋žœ์žญ์…˜ ์ค‘๊ณ„", - "link": "/ko/how-to/relay-with-gas-waiver" - }, - { - "text": "๋ธ”๋ก ๊ณต๊ฐ„ ๋ณด์žฅ", - "link": "/ko/how-to/send-guaranteed-transactions" - }, - { - "text": "๋ณด์žฅ๋œ ์ค‘๊ณ„ ํŠธ๋žœ์žญ์…˜", - "link": "/ko/how-to/guaranteed-relayed-transactions" - }, - { - "text": "์ฐธ์กฐ", - "link": "/ko/reference/enterprise-sdk" - } - ] - }, { "text": "์‚ฌ์šฉ์ž ์˜จ๋ณด๋”ฉ", "collapsed": true, @@ -969,21 +923,21 @@ "link": "/ko/tutorial/send-usdt0" }, { - "text": "๊ฐ€์Šค ์—†๋Š” ํŠธ๋žœ์žญ์…˜", + "text": "๋ฌด๋ฃŒ ๊ฐ€์Šค ํŠธ๋žœ์žญ์…˜", "link": "/ko/how-to/zero-gas-transactions" }, { - "text": "USDT0๋ฅผ ๊ฐ€์Šค๋กœ ์‚ฌ์šฉ", + "text": "๊ฐ€์Šค๋กœ์„œ USDT0 ์‚ฌ์šฉ", "link": "/ko/how-to/work-with-usdt-gas" }, { - "text": "USDT0 Stable ๋ธŒ๋ฆฌ์ง•", + "text": "USDT0๋ฅผ Stable๋กœ ๋ธŒ๋ฆฌ์ง•", "link": "/ko/tutorial/bridge-usdt0" } ] }, { - "text": "์‚ฌ์šฉ์ž ์š”๊ธˆ ์ฒญ๊ตฌ", + "text": "์‚ฌ์šฉ์ž์—๊ฒŒ ์ฒญ๊ตฌ", "collapsed": true, "items": [ { @@ -1025,7 +979,7 @@ "link": "/ko/reference/invoices" }, { - "text": "ํ˜ธ์ถœ๋‹น ์ง€๋ถˆ", + "text": "ํ†ตํ™”๋‹น ์ง€๋ถˆ", "link": "/ko/reference/pay-per-call" }, { @@ -1083,11 +1037,11 @@ "link": "/ko/reference/system-modules-api-overview" }, { - "text": "๋ฑ…ํฌ ๋ชจ๋“ˆ", + "text": "์€ํ–‰ ๋ชจ๋“ˆ", "link": "/ko/explanation/bank-module" }, { - "text": "๋ฑ…ํฌ ๋ชจ๋“ˆ API", + "text": "์€ํ–‰ ๋ชจ๋“ˆ API", "link": "/ko/reference/bank-module-api" }, { @@ -1119,7 +1073,7 @@ "link": "/ko/how-to/track-unbonding" }, { - "text": "๊ฒ€์ฆ์ž ๋ฐ์ดํ„ฐ ์ƒ‰์ธ", + "text": "์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ ๋ฐ์ดํ„ฐ ์ƒ‰์ธ", "link": "/ko/how-to/index-validator-data" } ] @@ -1161,7 +1115,7 @@ "link": "/ko/reference/mainnet-information" }, { - "text": "๋ฉ”์ธ๋„ท ๋ฒ„์ „ ์ด๋ ฅ", + "text": "๋ฉ”์ธ๋„ท ๋ฒ„์ „ ๊ธฐ๋ก", "link": "/ko/reference/mainnet-version-history" } ] @@ -1175,7 +1129,7 @@ "link": "/ko/reference/testnet-information" }, { - "text": "ํ…Œ์ŠคํŠธ๋„ท ๋ฒ„์ „ ์ด๋ ฅ", + "text": "ํ…Œ์ŠคํŠธ๋„ท ๋ฒ„์ „ ๊ธฐ๋ก", "link": "/ko/reference/testnet-version-history" }, { @@ -1217,7 +1171,7 @@ "link": "/ko/reference/bridges" }, { - "text": "DEX", + "text": "Dex", "link": "/ko/reference/dexes" }, { @@ -1251,7 +1205,7 @@ ] }, { - "text": "์šด์˜ ์ค€๋น„ ํƒœ์„ธ", + "text": "ํ”„๋กœ๋•์…˜ ์ค€๋น„์„ฑ", "link": "/ko/how-to/production-readiness" }, { @@ -1271,7 +1225,73 @@ ] }, { - "text": "์šด์˜", + "text": "๋„๊ตฌ ๋ฐ SDK", + "collapsed": true, + "items": [ + { + "text": "๋„๊ตฌ ๋ฐ SDK ๊ฐœ์š”", + "link": "/ko/explanation/tools-overview" + }, + { + "text": "Stable SDK", + "collapsed": true, + "items": [ + { + "text": "๊ฐœ์š”", + "link": "/ko/explanation/sdk-overview" + }, + { + "text": "๋น ๋ฅธ ์‹œ์ž‘", + "link": "/ko/tutorial/sdk-quickstart" + }, + { + "text": "์ฐธ์กฐ", + "link": "/ko/reference/sdk" + }, + { + "text": "์ˆ˜์ต ์ฐฝ์ถœ", + "link": "/ko/how-to/earn-yield" + }, + { + "text": "viem ํ†ตํ•ฉ", + "link": "/ko/how-to/sdk-with-viem" + }, + { + "text": "wagmi ํ†ตํ•ฉ", + "link": "/ko/how-to/sdk-with-wagmi" + } + ] + }, + { + "text": "์—”ํ„ฐํ”„๋ผ์ด์ฆˆ SDK", + "collapsed": true, + "items": [ + { + "text": "๊ฐœ์š”", + "link": "/ko/explanation/enterprise-sdk" + }, + { + "text": "ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ด", + "link": "/ko/how-to/relay-with-gas-waiver" + }, + { + "text": "๋ธ”๋ก ๊ณต๊ฐ„ ๋ณด์žฅ", + "link": "/ko/how-to/send-guaranteed-transactions" + }, + { + "text": "๋ณด์žฅ๋œ ๋ฆด๋ ˆ์ด ํŠธ๋žœ์žญ์…˜", + "link": "/ko/how-to/guaranteed-relayed-transactions" + }, + { + "text": "์ฐธ์กฐ", + "link": "/ko/reference/enterprise-sdk" + } + ] + } + ] + }, + { + "text": "Stable ๋…ธ๋“œ ์‹คํ–‰", "collapsed": true, "items": [ { @@ -1295,7 +1315,7 @@ "link": "/ko/how-to/use-node-snapshots" }, { - "text": "๊ฒ€์ฆ์ž ์‹คํ–‰", + "text": "์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ ์‹คํ–‰", "link": "/ko/how-to/run-validator" }, { @@ -1325,7 +1345,7 @@ "link": "/ko/explanation/ai-agents-guides" }, { - "text": "x402 ๋ฐ MPP ํ†ตํ•ด ์ง€๋ถˆ", + "text": "x402 ๋ฐ MPP๋กœ ๊ฒฐ์ œ", "collapsed": true, "items": [ { @@ -1341,7 +1361,7 @@ "link": "/ko/explanation/mpp-sessions" }, { - "text": "ํ˜ธ์ถœ๋‹น ์ง€๋ถˆ ๊ตฌ์ถ•", + "text": "ํ†ตํ™”๋‹น ์ง€๋ถˆ ๊ตฌ์ถ•", "link": "/ko/how-to/build-pay-per-call" }, { @@ -1349,7 +1369,7 @@ "link": "/ko/how-to/build-mpp-endpoint" }, { - "text": "MCP๋กœ ์ง€๋ถˆ", + "text": "MCP๋กœ ๊ฒฐ์ œ", "link": "/ko/how-to/pay-with-mcp" } ] @@ -1359,11 +1379,11 @@ "collapsed": true, "items": [ { - "text": "AI๋ฅผ ํ†ตํ•œ ๊ฐœ๋ฐœ", + "text": "AI๋กœ ๊ฐœ๋ฐœ", "link": "/ko/how-to/develop-with-ai" }, { - "text": "์—์ด์ „ํŠธ ํผ์‹ค๋ฆฌํ…Œ์ดํ„ฐ", + "text": "์—์ด์ „ํŠธ ์ด‰์ง„์ž", "link": "/ko/reference/agentic-facilitators" }, { @@ -1381,15 +1401,15 @@ "collapsed": true, "items": [ { - "text": "ๅญฆไน ๆ€ป่งˆ", + "text": "ๅญฆไน ๆฆ‚่ฟฐ", "link": "/cn/explanation/learn-overview" }, { - "text": "ๆ€ป่งˆ", + "text": "ๆฆ‚่ฟฐ", "link": "/cn/explanation/overview" }, { - "text": "ๆŠ€ๆœฏๆ€ป่งˆ", + "text": "ๆŠ€ๆœฏๆฆ‚่ฟฐ", "link": "/cn/explanation/tech-overview" }, { @@ -1401,7 +1421,7 @@ "link": "/cn/explanation/core-concepts" }, { - "text": "ไธป่ฆๅŠŸ่ƒฝ", + "text": "ไธป่ฆ็‰น็‚น", "link": "/cn/explanation/key-features" }, { @@ -1413,7 +1433,7 @@ "link": "/cn/explanation/ethereum-compatibility" }, { - "text": "ๆœ€็ปˆๆ€ง", + "text": "็ปˆ็ป“ๆ€ง", "link": "/cn/explanation/finality" }, { @@ -1435,19 +1455,19 @@ "collapsed": true, "items": [ { - "text": "USDT0 ๅŠŸ่ƒฝๆ€ป่งˆ", + "text": "USDT0 ๅŠŸ่ƒฝๆฆ‚่ฟฐ", "link": "/cn/explanation/usdt-features-overview" }, { - "text": "่ต„้‡‘ๆต", + "text": "่ต„้‡‘ๆตๅ‘", "link": "/cn/explanation/flow-of-funds" }, { - "text": "ๅฐ† USDT0 ่ทจ้“พ่‡ณ Stable", + "text": "ๅฐ† USDT0 ๆกฅๆŽฅๅˆฐ Stable", "link": "/cn/explanation/usdt0-bridging" }, { - "text": "่ทจ้“พๆกฅๅฎ‰ๅ…จๆ€ง", + "text": "ๆกฅๆŽฅๅฎ‰ๅ…จ", "link": "/cn/explanation/bridge-security" }, { @@ -1467,11 +1487,11 @@ "link": "/cn/explanation/guaranteed-blockspace" }, { - "text": "USDT ไบคๆ˜“่šๅˆๅ™จ", + "text": "USDT ไผ ่พ“่šๅˆๅ™จ", "link": "/cn/explanation/usdt-transfer-aggregator" }, { - "text": "ไฟๅฏ†่ฝฌ่ดฆ", + "text": "้š็งไผ ่พ“", "link": "/cn/explanation/confidential-transfer" } ] @@ -1481,7 +1501,7 @@ "collapsed": true, "items": [ { - "text": "ๆ ธๅฟƒไผ˜ๅŒ–ๆ€ป่งˆ", + "text": "ๆ ธๅฟƒไผ˜ๅŒ–ๆฆ‚่ฟฐ", "link": "/cn/explanation/core-optimization-overview" }, { @@ -1547,75 +1567,19 @@ "collapsed": true, "items": [ { - "text": "ๆž„ๅปบๆ€ป่งˆ", + "text": "ๆž„ๅปบๆฆ‚่ฟฐ", "link": "/cn/explanation/build-overview" }, { "text": "ๅฟซ้€Ÿๅผ€ๅง‹", "link": "/cn/tutorial/quick-start" }, - { - "text": "Stable SDK", - "collapsed": true, - "items": [ - { - "text": "ๆ€ป่งˆ", - "link": "/cn/explanation/sdk-overview" - }, - { - "text": "ๅฟซ้€Ÿๅ…ฅ้—จ", - "link": "/cn/tutorial/sdk-quickstart" - }, - { - "text": "ๅ‚่€ƒ", - "link": "/cn/reference/sdk" - }, - { - "text": "่ตšๅ–ๆ”ถ็›Š", - "link": "/cn/how-to/earn-yield" - }, - { - "text": "Viem ้›†ๆˆ", - "link": "/cn/how-to/sdk-with-viem" - }, - { - "text": "Wagmi ้›†ๆˆ", - "link": "/cn/how-to/sdk-with-wagmi" - } - ] - }, - { - "text": "ไผไธš็บง SDK", - "collapsed": true, - "items": [ - { - "text": "ๆ€ป่งˆ", - "link": "/cn/explanation/enterprise-sdk" - }, - { - "text": "ไธญ็ปงไบคๆ˜“", - "link": "/cn/how-to/relay-with-gas-waiver" - }, - { - "text": "ไฟ่ฏๅŒบๅ—็ฉบ้—ด", - "link": "/cn/how-to/send-guaranteed-transactions" - }, - { - "text": "ไฟ่ฏไธญ็ปงไบคๆ˜“", - "link": "/cn/how-to/guaranteed-relayed-transactions" - }, - { - "text": "ๅ‚่€ƒ", - "link": "/cn/reference/enterprise-sdk" - } - ] - }, { "text": "็”จๆˆทๅผ•ๅฏผ", "collapsed": true, "items": [ { - "text": "่ดฆๆˆทๆ€ป่งˆ", + "text": "่ดฆๆˆทๆฆ‚่ฟฐ", "link": "/cn/explanation/accounts-overview" }, { @@ -1641,7 +1605,7 @@ "collapsed": true, "items": [ { - "text": "ๆ”ฏไป˜ๆ€ป่งˆ", + "text": "ๆ”ฏไป˜ๆฆ‚่ฟฐ", "link": "/cn/explanation/payments-overview" }, { @@ -1653,7 +1617,7 @@ "collapsed": true, "items": [ { - "text": "ๅ‘้€้ฆ–็ฌ” USDT0", + "text": "ๅ‘้€ๆ‚จ็š„็ฌฌไธ€ไธช USDT0", "link": "/cn/tutorial/send-usdt0" }, { @@ -1665,7 +1629,7 @@ "link": "/cn/how-to/work-with-usdt-gas" }, { - "text": "ๅฐ† USDT0 ่ทจ้“พๅˆฐ Stable", + "text": "ๅฐ† USDT0 ๆกฅๆŽฅๅˆฐ Stable", "link": "/cn/tutorial/bridge-usdt0" } ] @@ -1683,7 +1647,7 @@ "link": "/cn/how-to/subscribe-and-collect" }, { - "text": "ๅ‘็ฅจไป˜ๆฌพ", + "text": "ไฝฟ็”จๅ‘็ฅจๆ”ฏไป˜", "link": "/cn/how-to/pay-with-invoice" } ] @@ -1697,7 +1661,7 @@ "link": "/cn/explanation/erc-3009" }, { - "text": "ๆ”ฏไป˜็”จไพ‹ๆ€ป่งˆ", + "text": "ๆ”ฏไป˜็”จไพ‹ๆฆ‚่ฟฐ", "link": "/cn/explanation/payment-use-cases-overview" }, { @@ -1725,11 +1689,11 @@ ] }, { - "text": "ๅ‘ๅธƒๅˆ็บฆ", + "text": "้ƒจ็ฝฒๅˆ็บฆ", "collapsed": true, "items": [ { - "text": "ๅˆ็บฆๆ€ป่งˆ", + "text": "ๅˆ็บฆๆฆ‚่ฟฐ", "link": "/cn/explanation/contracts-overview" }, { @@ -1737,7 +1701,7 @@ "link": "/cn/explanation/contracts-guides" }, { - "text": "้ƒจ็ฝฒ้ฆ–ไธชๅˆ็บฆ", + "text": "้ƒจ็ฝฒๆ‚จ็š„็ฌฌไธ€ไธชๅˆ็บฆ", "collapsed": true, "items": [ { @@ -1759,7 +1723,7 @@ "collapsed": true, "items": [ { - "text": "็ณป็ปŸๆจกๅ—ๆ€ป่งˆ", + "text": "็ณป็ปŸๆจกๅ—ๆฆ‚่ฟฐ", "link": "/cn/explanation/system-modules-overview" }, { @@ -1767,7 +1731,7 @@ "link": "/cn/how-to/use-system-modules" }, { - "text": "็ณป็ปŸๆจกๅ— API ๆ€ป่งˆ", + "text": "็ณป็ปŸๆจกๅ— API ๆฆ‚่ฟฐ", "link": "/cn/reference/system-modules-api-overview" }, { @@ -1807,7 +1771,7 @@ "link": "/cn/how-to/track-unbonding" }, { - "text": "้ชŒ่ฏๅ™จๆ•ฐๆฎ็ดขๅผ•", + "text": "็ดขๅผ•้ชŒ่ฏๅ™จๆ•ฐๆฎ", "link": "/cn/how-to/index-validator-data" } ] @@ -1825,7 +1789,7 @@ "collapsed": true, "items": [ { - "text": "้›†ๆˆๆ€ป่งˆ", + "text": "้›†ๆˆๆฆ‚่ฟฐ", "link": "/cn/explanation/integrate-overview" }, { @@ -1901,7 +1865,7 @@ "collapsed": true, "items": [ { - "text": "่ทจ้“พๆกฅ", + "text": "ๆกฅๆŽฅๅ™จ", "link": "/cn/reference/bridges" }, { @@ -1921,7 +1885,7 @@ "link": "/cn/reference/network-routing" }, { - "text": "ๆณ•ๅธ้€š้“", + "text": "ๅ…ฅๅฃ/ๅ‡บๅฃ", "link": "/cn/reference/ramps" }, { @@ -1959,11 +1923,77 @@ ] }, { - "text": "่ฟ่ฅ", + "text": "ๅทฅๅ…ทๅ’Œ SDK", + "collapsed": true, + "items": [ + { + "text": "ๅทฅๅ…ทๅ’Œ SDK ๆฆ‚่ฟฐ", + "link": "/cn/explanation/tools-overview" + }, + { + "text": "Stable SDK", + "collapsed": true, + "items": [ + { + "text": "ๆฆ‚่ฟฐ", + "link": "/cn/explanation/sdk-overview" + }, + { + "text": "ๅฟซ้€Ÿๅ…ฅ้—จ", + "link": "/cn/tutorial/sdk-quickstart" + }, + { + "text": "ๅ‚่€ƒ", + "link": "/cn/reference/sdk" + }, + { + "text": "่ตšๅ–ๆ”ถ็›Š", + "link": "/cn/how-to/earn-yield" + }, + { + "text": "viem ้›†ๆˆ", + "link": "/cn/how-to/sdk-with-viem" + }, + { + "text": "wagmi ้›†ๆˆ", + "link": "/cn/how-to/sdk-with-wagmi" + } + ] + }, + { + "text": "ไผไธš SDK", + "collapsed": true, + "items": [ + { + "text": "ๆฆ‚่ฟฐ", + "link": "/cn/explanation/enterprise-sdk" + }, + { + "text": "ไธญ็ปงไบคๆ˜“", + "link": "/cn/how-to/relay-with-gas-waiver" + }, + { + "text": "ไฟ่ฏๅŒบๅ—็ฉบ้—ด", + "link": "/cn/how-to/send-guaranteed-transactions" + }, + { + "text": "ไฟ่ฏไธญ็ปงไบคๆ˜“", + "link": "/cn/how-to/guaranteed-relayed-transactions" + }, + { + "text": "ๅ‚่€ƒ", + "link": "/cn/reference/enterprise-sdk" + } + ] + } + ] + }, + { + "text": "่ฟ่กŒ Stable ่Š‚็‚น", "collapsed": true, "items": [ { - "text": "่Š‚็‚น่ฟ่ฅๆ€ป่งˆ", + "text": "่Š‚็‚นๆ“ไฝœๆฆ‚่ฟฐ", "link": "/cn/reference/node-operations-overview" }, { @@ -2037,7 +2067,7 @@ "link": "/cn/how-to/build-mpp-endpoint" }, { - "text": "้€š่ฟ‡ MCP ๆ”ฏไป˜", + "text": "ไฝฟ็”จ MCP ๆ”ฏไป˜", "link": "/cn/how-to/pay-with-mcp" } ] @@ -2047,7 +2077,7 @@ "collapsed": true, "items": [ { - "text": "ๅˆฉ็”จ AI ๅผ€ๅ‘", + "text": "ไฝฟ็”จ AI ๅผ€ๅ‘", "link": "/cn/how-to/develop-with-ai" }, {