{"id":459641,"date":"2025-05-14T15:00:20","date_gmt":"2025-05-14T15:00:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=459641"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=459641","title":{"rendered":"<span>\u041c\u0430\u0433\u0438\u044f Curve: \u043e\u0431\u0437\u043e\u0440 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0438 \u0432\u043e\u0439\u043d\u0430 \u0437\u0430 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/87c\/bce\/e14\/87cbcee1466503ec12db791e3f2ef029.png\" width=\"1264\" height=\"643\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/87c\/bce\/e14\/87cbcee1466503ec12db791e3f2ef029.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/87c\/bce\/e14\/87cbcee1466503ec12db791e3f2ef029.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>Curve<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u043c\u0435\u043d\u043d\u0438\u043a (DEX) \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0440\u043a\u0435\u0442-\u043c\u0435\u0439\u043a\u0435\u0440\u0430 (AMM) \u0434\u043b\u044f Ethereum \u0438 EVM-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u0432. \u041f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0437\u0430\u0442\u043e\u0447\u0435\u043d \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432, \u043d\u043e \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u044b\u0435 \u0430\u043a\u0442\u0438\u0432\u044b \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u043c\u0435\u043d\u044f\u043d\u044b.<\/p>\n<h3>\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u0438 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u043e\u0439 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f Curve, \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u0441\u0442\u0430\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a\u00a0<a href=\"https:\/\/app.uniswap.org\/\" rel=\"noopener noreferrer nofollow\">Uniswap<\/a>\u00a0v2. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 Uniswap \u0443\u0436\u0435 \u0432\u043d\u0435\u0434\u0440\u0438\u043b \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u00a0<code>x * y = k<\/code>. \u042d\u0442\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0443\u043b\u0430, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0446\u0435\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432 \u043f\u0443\u043b\u0435 Uniswap ETH\/USDC \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 $1_000_000. \u0415\u0441\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u044c ETH \u043d\u0430 \u0441\u0443\u043c\u043c\u0443 $750_000, \u0442\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435 USDC, \u0447\u0435\u043c $750_000, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442 \u0431\u0430\u043b\u0430\u043d\u0441 ETH \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e USDC \u0432 \u043f\u0443\u043b\u0435.<\/p>\n<p>\u0418 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u043e\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0445 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f 1 \u0434\u043e\u043b\u043b\u0430\u0440\u0443. \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u0443\u043b USDT\/USDC, \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 USDT \u043d\u0430 USDC, \u0432 \u043f\u0443\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 USDT \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 USDC, \u0438 \u0434\u0430\u0436\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u044b \u043e\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a 1 \u0434\u043e\u043b\u043b\u0430\u0440\u0443 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u044b\u043b\u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b Curve \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0443\u044e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u043c\u0435\u0436\u0434\u0443 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0446\u0435\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f Uniswap \u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u043e\u0439. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u0441\u044f, \u043d\u043e \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 Uniswap. \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0446\u0435\u043d\u044b Uniswap \u0438 Curve (StableSwap), \u0432\u0437\u044f\u0442\u044b\u0439 \u0438\u0437\u00a0<a href=\"https:\/\/docs.curve.fi\/assets\/pdf\/stableswap-paper.pdf\" rel=\"noopener noreferrer nofollow\">whitepaper<\/a>.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b37\/3ba\/61f\/b373ba61f0316ec096f9f68d28b91662.png\" width=\"530\" height=\"319\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b37\/3ba\/61f\/b373ba61f0316ec096f9f68d28b91662.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b37\/3ba\/61f\/b373ba61f0316ec096f9f68d28b91662.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0413\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 (dx), \u0446\u0435\u043d\u0430 \u0443 StableSwap \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435.<\/p>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 Curve \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Uniswap v2 \u0438 Curve (\u0414\u043b\u044f Uniswap \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0443\u043b\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f v2). \u041d\u0430\u00a0<code>$100_000<\/code>, \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 USDC \u043d\u0430 DAI, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0439. \u041f\u0440\u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e8\/c92\/b4e\/5e8c92b4ed9976ef5adfc01aa0d95d9f.png\" width=\"1024\" height=\"699\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5e8\/c92\/b4e\/5e8c92b4ed9976ef5adfc01aa0d95d9f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e8\/c92\/b4e\/5e8c92b4ed9976ef5adfc01aa0d95d9f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 Uniswap V3 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0446\u0435\u043f\u0442 &#171;\u041a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438&#187; \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0446\u0435\u043d\u044b. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0441\u0447\u0435\u0442 \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0430\u0446\u0438\u0438 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0446\u0435\u043d\u044b.<\/p>\n<h3>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 Curve<\/h3>\n<p>Curve \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0440\u043a\u0435\u0442-\u043c\u0435\u0439\u043a\u0435\u0440\u0430, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432. \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0430\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432.<\/p>\n<ul>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b\u00a0<code>x + y = k<\/code>. \u0414\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u00a0<code>x * y = k<\/code>. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u0442\u044c, \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 Uniswap v2 \u0438 v3.<\/p>\n<\/li>\n<\/ul>\n<p>Curve \u0432\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0435\u0435 \u0431\u0443\u043a\u0432\u043e\u0439\u00a0<code>D<\/code>. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u00a0<code>k<\/code>\u00a0\u0432 Uniswap. \u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u0443\u043b\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0432\u0443\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432, \u0442\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/13f\/440\/0eb\/13f4400eb3a5c782b6c56ee1b4ac3061.png\" width=\"180\" height=\"111\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/13f\/440\/0eb\/13f4400eb3a5c782b6c56ee1b4ac3061.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/13f\/440\/0eb\/13f4400eb3a5c782b6c56ee1b4ac3061.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435:<\/p>\n<ul>\n<li>\n<p>D &#8212; \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>x &#8212; i-\u0439 \u0430\u043a\u0442\u0438\u0432<\/p>\n<\/li>\n<li>\n<p>n &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435<\/p>\n<\/li>\n<li>\n<p>\u03a3 &#8212; \u0441\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u041f &#8212; \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0448\u0430\u0433 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b Curve \u0438\u0437 \u0444\u043e\u0440\u043c\u0443\u043b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a\u00a0<a href=\"https:\/\/docs.curve.fi\/references\/whitepapers\/stableswap\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 StableSwap<\/a>. \u041c\u044b \u0436\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 StableSwap.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5bb\/0c8\/b23\/5bb0c8b230ebaefcfb7cbf4d2d114383.png\" width=\"384\" height=\"98\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5bb\/0c8\/b23\/5bb0c8b230ebaefcfb7cbf4d2d114383.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5bb\/0c8\/b23\/5bb0c8b230ebaefcfb7cbf4d2d114383.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f (amplification coefficient), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a\u00a0<code>A<\/code>. \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f\u00a0<code>A<\/code>\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u043e\u0440\u043c\u0443 \u043a\u0440\u0438\u0432\u043e\u0439 \u043e\u0431\u043c\u0435\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u0430\u043a\u0442\u0438\u0432\u0430\u043c\u0438 \u0432 \u043f\u0443\u043b\u0435 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c.<\/p>\n<p>\u0412\u044b\u0441\u043e\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0\u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0443\u043b \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043f\u0443\u043b \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u043e\u0439, \u0447\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u043c\u0435\u043d\u0430\u0445. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u0431\u043b\u0438\u0437\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0446\u0435\u043d\u044b \u043e\u0431\u043c\u0435\u043d\u0430, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0431\u043c\u0435\u043d \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438 \u0434\u0435\u0448\u0435\u0432\u044b\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>\u041d\u0438\u0437\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0\u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0443\u043b \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0430\u043a \u043f\u0443\u043b \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c (\u043a\u0430\u043a \u0432 Uniswap), \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0442\u043e\u0440\u0433\u043e\u0432 \u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0446\u0435\u043d.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0443\u043b\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u00a0<code>x<\/code>\u00a0\u0438\u00a0<code>y<\/code>, \u0430\u00a0<code>\u0410<\/code>\u00a0\u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 0. \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0441 \u043a \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 Curve \u0437\u0430 \u043c\u0435\u0441\u0442\u043e:<\/p>\n<ul>\n<li>\n<p>A -&gt; 0<\/p>\n<\/li>\n<li>\n<p>x[i] -&gt;\u00a0<code>x<\/code>\u00a0\u0438\u00a0<code>y<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 0, \u0434\u0430\u0435\u0442 0:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ff1\/c67\/dd5\/ff1c67dd5305e9e40df9ef9efe59eed5.png\" width=\"147\" height=\"59\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ff1\/c67\/dd5\/ff1c67dd5305e9e40df9ef9efe59eed5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ff1\/c67\/dd5\/ff1c67dd5305e9e40df9ef9efe59eed5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043d\u0430\u0448\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f71\/a25\/96f\/f71a2596f9172f0bfe3e8fba246c8d0b.png\" width=\"1859\" height=\"723\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f71\/a25\/96f\/f71a2596f9172f0bfe3e8fba246c8d0b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f71\/a25\/96f\/f71a2596f9172f0bfe3e8fba246c8d0b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#8212; \u044d\u0442\u043e \u0433\u0438\u043f\u0435\u0440\u0431\u043e\u043b\u0430 \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432. \u0421\u0438\u043d\u0438\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u0431 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0441 A \u043d\u0435 \u0440\u0430\u0432\u043d\u044b\u043c \u043d\u0443\u043b\u044e.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/396\/ca1\/762\/396ca1762c2128f0fe6a0a8f3a4ab7c8.png\" width=\"369\" height=\"75\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/396\/ca1\/762\/396ca1762c2128f0fe6a0a8f3a4ab7c8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/396\/ca1\/762\/396ca1762c2128f0fe6a0a8f3a4ab7c8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0&#8212; \u044d\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8ee\/91f\/d92\/8ee91fd9274e329606b701c401e75995.png\" width=\"1862\" height=\"763\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8ee\/91f\/d92\/8ee91fd9274e329606b701c401e75995.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8ee\/91f\/d92\/8ee91fd9274e329606b701c401e75995.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0&#8212; \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 \u043a \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/21d\/6fe\/6a6\/21d6fe6a6420db951e54f6bca075487c.png\" width=\"1920\" height=\"769\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/21d\/6fe\/6a6\/21d6fe6a6420db951e54f6bca075487c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/21d\/6fe\/6a6\/21d6fe6a6420db951e54f6bca075487c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c Curve \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043b\u0430\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432.<\/p>\n<h3>StableSwap exchange<\/h3>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c StableSwap \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0443\u043b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u043e\u0434 \u044d\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435. \u041c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u044d\u0442\u043e\u043c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 Curve.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043d\u0435\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u0435\u043d \u0442\u0438\u043f \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439, \u043a\u0430\u043a \u043a \u0444\u0438\u0430\u0442\u0443, \u0442\u0430\u043a \u0438 \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u0440\u0438\u043f\u0442\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u043c.<\/p>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430, Curve \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/tree\/master\/contracts\/pools\" rel=\"noopener noreferrer nofollow\">StableSwap<\/a>: \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/stableswap-ng\" rel=\"noopener noreferrer nofollow\">StableSwap-ng<\/a>: \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432\u00a0<a href=\"https:\/\/github.com\/curvefi\/stableswap-ng\/tree\/main\/deployments\" rel=\"noopener noreferrer nofollow\">deployments<\/a>\u00a0StableSwap-ng \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0442\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d\u0430 \u044d\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e: Mantle, XLayer, zkSync \u0438 \u0434\u0440\u0443\u0433\u0438\u0435.<\/p>\n<\/blockquote>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b StableSwap, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u0442\u0435\u0439.<\/p>\n<h4>StableSwap<\/h4>\n<p>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0443\u043b \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435\u00a0<code>vyper<\/code>\u00a0\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u00a0<a href=\"https:\/\/github.com\/eth-brownie\/brownie\" rel=\"noopener noreferrer nofollow\">Brownie<\/a>.<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u043f\u0443\u043b\u043e\u0432 Curve:<\/p>\n<ul>\n<li>\n<p><strong>Plain pool<\/strong>. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0443\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0434\u0432\u0430 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0438\u0432\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Lending pool<\/strong>. \u042d\u0442\u043e \u043f\u0443\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 LP \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043b\u0435\u043d\u0434\u0438\u043d\u0433 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>Metapool<\/strong>. \u042d\u0442\u043e \u043f\u0443\u043b, \u0433\u0434\u0435 \u0430\u043a\u0442\u0438\u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0441 LP \u0442\u043e\u043a\u0435\u043d\u043e\u043c\u00a0<strong>plain<\/strong>\u00a0\u043f\u0443\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430, \u043f\u0443\u043b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p><code>exchange()<\/code>\u00a0&#8212; \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0434\u0438\u043d \u0430\u043a\u0442\u0438\u0432 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439<\/p>\n<\/li>\n<li>\n<p><code>add_liquidity()<\/code>\u00a0&#8212; \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/li>\n<li>\n<p><code>remove_liquidity()<\/code>\u00a0&#8212; \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/li>\n<li>\n<p><code>remove_liquidity_imbalance()<\/code>\u00a0&#8212; \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e<\/p>\n<\/li>\n<li>\n<p><code>remove_liquidity_one_coin()<\/code>\u00a0&#8212; \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><code>_xp()<\/code>\u00a0&#8212; \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0431\u0430\u043b\u0430\u043d\u0441\u044b \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0443\u043b\u0430 \u043a \u0435\u0434\u0438\u043d\u043e\u043c\u0443 decimals. \u041f\u0435\u0440\u0435\u0434 \u043b\u044e\u0431\u044b\u043c\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0430\u043c\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u044b \u043b\u044e\u0431\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a decimals \u0440\u0430\u0432\u043d\u043e\u043c\u0443 18.<\/p>\n<\/li>\n<li>\n<p><code>get_D()<\/code>\u00a0&#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b. \u0414\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Newton%27s_method\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u0442\u043e\u0434 \u041d\u044c\u044e\u0442\u043e\u043d\u0430<\/a>, \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0438 \u0442\u0430\u043a\u0438\u0435 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 whitepaper.<\/p>\n<\/li>\n<li>\n<p><code>get_virtual_price()<\/code>\u00a0&#8212; \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c lp \u0442\u043e\u043a\u0435\u043d\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u043f\u0443\u043b\u0430<\/p>\n<\/li>\n<li>\n<p><code>calc_token_amount()<\/code>\u00a0&#8212; \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 totalSupply \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u043e\u043d\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043a\u0435\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u0438\u043d\u0447\u0435\u043d \u0438\u043b\u0438 \u0441\u043e\u0436\u0436\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u043f\u0440\u0438 \u043d\u0435\u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u0443\u043b\u0435.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041e\u0431\u0437\u043e\u0440 \u043a\u043e\u0434\u0430 \u043f\u0443\u043b\u0430<\/h4>\n<p>\u0423 Curve \u043c\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043f\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432. \u0412\u0441\u0435, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u0430\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\" rel=\"noopener noreferrer nofollow\">curve-contract<\/a>. \u041d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u0430\u043c\u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b \u0432 \u043f\u0430\u043f\u043e\u0447\u043a\u0435\u00a0<code>.\/contracts<\/code>.<\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0430\u043f\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5a7\/a95\/f10\/5a7a95f109347f4a7069415787cf5333.png\" width=\"581\" height=\"730\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5a7\/a95\/f10\/5a7a95f109347f4a7069415787cf5333.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5a7\/a95\/f10\/5a7a95f109347f4a7069415787cf5333.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p><strong>pool-templates<\/strong>. \u042d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0434\u043b\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043f\u0443\u043b\u043e\u0432. \u041d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0443\u043b.<\/p>\n<\/li>\n<li>\n<p><strong>pools<\/strong>. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0443\u043b\u043e\u0432. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0443\u043b\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>testings<\/strong>. \u041d\u0430\u0431\u043e\u0440 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u043e\u043a\u0438 \u0434\u043b\u044f \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>tokens<\/strong>. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 LP \u0442\u043e\u043a\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u0443\u043b\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u044c \u043f\u0430\u043f\u043a\u0438\u00a0<code>3Pool<\/code>\u00a0&#8212; \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0443\u043b\u043e\u0432. \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0443\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0442\u0440\u0435\u043c\u044f \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438: DAI, USDC, USDT.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/111\/9ee\/851\/1119ee8515203881e452f0eee6fb6800.png\" width=\"398\" height=\"354\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/111\/9ee\/851\/1119ee8515203881e452f0eee6fb6800.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/111\/9ee\/851\/1119ee8515203881e452f0eee6fb6800.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p><strong>Readme.md<\/strong>. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0443\u043b\u0430, \u0430\u0434\u0440\u0435\u0441\u0430 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>StableSwap3Pool<\/strong>. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u0443\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>pooldata.json<\/strong>. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f \u043f\u0443\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u0434\u0435\u043f\u043b\u043e\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Deposit.vy<\/strong>. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u043d\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u043f\u0443\u043b\u0430. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u0442\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 \u043f\u0443\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0443\u043b, \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 \u043f\u0443\u043b\u0430. \u041c\u044b \u0436\u0435 \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c \u0438 \u0431\u0443\u0434\u0435\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0443\u043b\u0430 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439.<\/p>\n<p>\u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u044c \u043f\u0430\u043f\u043a\u0438\u00a0<code>pool-templates<\/code>:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b64\/89a\/c3d\/b6489ac3df98cf6b3c19c02b4b74d51c.png\" width=\"412\" height=\"463\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b64\/89a\/c3d\/b6489ac3df98cf6b3c19c02b4b74d51c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b64\/89a\/c3d\/b6489ac3df98cf6b3c19c02b4b74d51c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p><strong>a<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u043b\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e lp \u0442\u043e\u043a\u0435\u043d\u044b lending \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u041f\u043e \u0442\u0438\u043f\u0443 aTokens \u0434\u043b\u044f Aave.<\/p>\n<\/li>\n<li>\n<p><strong>base<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u0443\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>eth<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0443\u043b\u0430, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e ETH.<\/p>\n<\/li>\n<li>\n<p><strong>meta<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u043c\u0435\u0442\u0430\u043f\u0443\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 LP \u0442\u043e\u043a\u0435\u043d\u044b \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0443\u043b\u043e\u0432 Curve.<\/p>\n<\/li>\n<li>\n<p><strong>y<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u043b\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e lp \u0442\u043e\u043a\u0435\u043d\u044b lending \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u041f\u043e \u0442\u0438\u043f\u0443 yearn.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d<\/strong><\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u0443\u043b\u0430\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy\" rel=\"noopener noreferrer nofollow\">SwapTemplateBase.vy<\/a>.<\/p>\n<p>\u041b\u044e\u0431\u043e\u0439 \u043f\u0443\u043b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">N_COINS: constant(int128) = ___N_COINS___ \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435 PRECISION_MUL: constant(uint256[N_COINS]) = ___PRECISION_MUL___ \/\/ \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0430\u043a\u0442\u0438\u0432\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u0430\u043a\u0442\u0438\u0432\u044b \u043a \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 RATES: constant(uint256[N_COINS]) = ___RATES___ \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u0430  FEE_DENOMINATOR: constant(uint256) = 10 ** 10 \/\/ \u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 PRECISION: constant(uint256) = 10 ** 18 \/\/ \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u0445 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432  MAX_ADMIN_FEE: constant(uint256) = 10 * 10 ** 9 \/\/ \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0430\u0434\u043c\u0438\u043d \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 MAX_FEE: constant(uint256) = 5 * 10 ** 9 \/\/ \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u0437\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0443\u043b\u0430 MAX_A: constant(uint256) = 10 ** 6 \/\/ \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f MAX_A_CHANGE: constant(uint256) = 10 \/\/ \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0435 \u0432\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c\u0441\u044f A  ADMIN_ACTIONS_DELAY: constant(uint256) = 3 * 86400 \/\/ \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 MIN_RAMP_TIME: constant(uint256) = 86400 \/\/ \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 A<\/code><\/pre>\n<p>\u0412\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e\u00a0<strong><em>N_COINS<\/em><\/strong>,\u00a0<strong><em>PRECISION_MUL<\/em><\/strong>,\u00a0<strong><em>RATES<\/em><\/strong>\u00a0\u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\u00a0<strong><em>N_COINS<\/em><\/strong>\u00a0\u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u044f\u0442 \u0438\u0437\u00a0<code>pooldata.json<\/code>\u00a0\u043f\u0443\u043b\u0430. \u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0432\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/brownie_hooks.py#L37\" rel=\"noopener noreferrer nofollow\">brownie_<\/a><a href=\"http:\/\/hooks.py\" rel=\"noopener noreferrer nofollow\">hooks.py<\/a>.<\/p>\n<p>\u0412 vyper, \u043a\u0430\u043a \u0438 \u0432 Solidity \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043d\u0430 \u043d\u0435\u0433\u043e \u0442\u043e\u0436\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c:<\/p>\n<pre><code class=\"javascript\">def __init__(     _owner: address, \/\/ \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u043c\u043e\u0436\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c \u0410, \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0435\u0439, \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442     _coins: address[N_COINS], \/\/ \u0421\u043f\u0438\u0441\u043e\u043a \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u043f\u0443\u043b\u0430     _pool_token: address, \/\/ LP \u0442\u043e\u043a\u0435\u043d \u043f\u0443\u043b\u0430     _A: uint256, \/\/ \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f     _fee: uint256, \/\/ \u041a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438     _admin_fee: uint256 \/\/ \u041a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 ):<\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c.<\/p>\n<p><strong>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L296\" rel=\"noopener noreferrer nofollow\">add_liquidity()<\/a>. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:<\/p>\n<pre><code class=\"javascript\">@external @nonreentrant('lock') def add_liquidity(_amounts: uint256[N_COINS], _min_mint_amount: uint256) -&gt; uint256:     assert not self.is_killed \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d      amp: uint256 = self._A()     old_balances: uint256[N_COINS] = self.balances      \/\/ \u0412\u044b\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b     D0: uint256 = self._get_D_mem(old_balances, amp)      lp_token: address = self.lp_token     token_supply: uint256 = CurveToken(lp_token).totalSupply()     new_balances: uint256[N_COINS] = old_balances     for i in range(N_COINS):         if token_supply == 0:             assert _amounts[i] &gt; 0 \/\/ \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u0432\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u043a\u0435\u043d\u044b \u043f\u0443\u043b\u0430 \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0435\u0433\u043e \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b         # balances store amounts of c-tokens         new_balances[i] += _amounts[i]      \/\/ \u041f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443 \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0430\u043c\u0438 \u043f\u0443\u043b\u0430     D1: uint256 = self._get_D_mem(new_balances, amp)     \/\/ \u041f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438, \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435     assert D1 &gt; D0      \/\/ \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443 D \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438     D2: uint256 = D1     fees: uint256[N_COINS] = empty(uint256[N_COINS])     mint_amount: uint256 = 0     \/\/ \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0432\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u0443\u043b     if token_supply &gt; 0:         fee: uint256 = self.fee * N_COINS \/ (4 * (N_COINS - 1))         admin_fee: uint256 = self.admin_fee          for i in range(N_COINS):             ideal_balance: uint256 = D1 * old_balances[i] \/ D0             difference: uint256 = 0             new_balance: uint256 = new_balances[i]             if ideal_balance &gt; new_balance:                 difference = ideal_balance - new_balance             else:                 difference = new_balance - ideal_balance             fees[i] = fee * difference \/ FEE_DENOMINATOR             self.balances[i] = new_balance - (fees[i] * admin_fee \/ FEE_DENOMINATOR)             \/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u044b \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0437\u0430 \u0432\u044b\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438             new_balances[i] -= fees[i]         \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438         D2 = self._get_D_mem(new_balances, amp)         \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e lp \u0442\u043e\u043a\u0435\u043d\u0430         mint_amount = token_supply * (D2 - D0) \/ D0     \/\/ \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438     else:         \/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u043e\u0432         self.balances = new_balances         \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e lp \u0442\u043e\u043a\u0435\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b         mint_amount = D1     assert mint_amount &gt;= _min_mint_amount, \"Slippage screwed you\"      \/\/ \u0410\u043d\u0430\u043b\u043e\u0433 \u0432\u044b\u0437\u043e\u0432\u0430 safeTransferFrom \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u044b \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043f\u0443\u043b \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438     for i in range(N_COINS):         if _amounts[i] &gt; 0:             _response: Bytes[32] = raw_call(                 self.coins[i],                 concat(                     method_id(\"transferFrom(address,address,uint256)\"),                     convert(msg.sender, bytes32),                     convert(self, bytes32),                     convert(_amounts[i], bytes32),                 ),                 max_outsize=32,             )             if len(_response) &gt; 0:                 assert convert(_response, bool)  # dev: failed transfer             # end \"safeTransferFrom\"      \/\/ \u0412\u0437\u0430\u043c\u0435\u043d \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0434\u0430\u0435\u043c lp \u0442\u043e\u043a\u0435\u043d     CurveToken(lp_token).mint(msg.sender, mint_amount)      log AddLiquidity(msg.sender, _amounts, fees, D1, token_supply + mint_amount)      return mint_amount<\/code><\/pre>\n<p><strong>\u0421\u043d\u044f\u0442\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0441\u043d\u044f\u0442\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0442\u0440\u0435\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L513C5-L513C21\" rel=\"noopener noreferrer nofollow\">remove_liquidity()<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L552C5-L552C31\" rel=\"noopener noreferrer nofollow\">remove_liquidity_imbalance()<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L704\" rel=\"noopener noreferrer nofollow\">remove_liquidity_one_coin()<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0<code>remove_liquidity()<\/code>:<\/p>\n<pre><code class=\"javascript\">@external @nonreentrant('lock') \/\/ amount - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e lp \u0442\u043e\u043a\u0435\u043d\u0430 \u0434\u043b\u044f \u0441\u0436\u0438\u0433\u0430\u043d\u0438\u044f def remove_liquidity(_amount: uint256, _min_amounts: uint256[N_COINS]) -&gt; uint256[N_COINS]:     lp_token: address = self.lp_token     total_supply: uint256 = CurveToken(lp_token).totalSupply()     amounts: uint256[N_COINS] = empty(uint256[N_COINS])      \/\/ \u0410\u043d\u0430\u043b\u043e\u0433 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 transfer() \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0430\u043a\u0442\u0438\u0432\u0443 \u043f\u0443\u043b\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0435\u0433\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u043c\u0443     for i in range(N_COINS):         old_balance: uint256 = self.balances[i]         \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0430 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0430\u043a\u0442\u0438\u0432\u0443         value: uint256 = old_balance * _amount \/ total_supply         assert value &gt;= _min_amounts[i], \"Withdrawal resulted in fewer coins than expected\"         self.balances[i] = old_balance - value         amounts[i] = value         _response: Bytes[32] = raw_call(             self.coins[i],             concat(                 method_id(\"transfer(address,uint256)\"),                 convert(msg.sender, bytes32),                 convert(value, bytes32),             ),             max_outsize=32,         )         if len(_response) &gt; 0:             assert convert(_response, bool)      \/\/ \u0421\u0436\u0438\u0433\u0430\u0435\u043c lp \u0442\u043e\u043a\u0435\u043d\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438     CurveToken(lp_token).burnFrom(msg.sender, _amount)      log RemoveLiquidity(msg.sender, amounts, empty(uint256[N_COINS]), total_supply - _amount)      return amounts<\/code><\/pre>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u0432\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0441\u043d\u044f\u0442\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e, \u043d\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435: \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u0430 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430, \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u043c\u0443, \u0441\u0436\u0435\u0447\u044c lp \u0442\u043e\u043a\u0435\u043d. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b D, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u043e\u0432 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 (\u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0445 \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 D) \u0432 \u043f\u0443\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0430.<\/p>\n<p><strong>\u041e\u0431\u043c\u0435\u043d \u0430\u043a\u0442\u0438\u0432\u043e\u0432<\/strong><\/p>\n<p>\u0417\u0430 \u043e\u0431\u043c\u0435\u043d \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L447\" rel=\"noopener noreferrer nofollow\">exchange()<\/a>. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0435 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"javascript\">@external @nonreentrant('lock') \/\/ i - \u0438\u043d\u0434\u0435\u043a\u0441 \u0430\u043a\u0442\u0438\u0432\u0430 \u0432 \u043f\u0443\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0431\u043c\u0435\u043d \/\/ j - \u0438\u043d\u0434\u0435\u043a\u0441 \u0430\u043a\u0442\u0438\u0432\u0430 \u0432 \u043f\u0443\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \/\/ _dx - \u0441\u0443\u043c\u043c\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0430\u043a\u0442\u0438\u0432\u0430 \/\/ _min_dy - \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u0430 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u0433\u043b\u0430\u0441\u0435\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. \u0414\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f def exchange(i: int128, j: int128, _dx: uint256, _min_dy: uint256) -&gt; uint256:     assert not self.is_killed \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d      old_balances: uint256[N_COINS] = self.balances     \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0430\u043b\u0430\u043d\u0441\u043e\u0432 \u043f\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u043c \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c \u043a \u0435\u0434\u0438\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438     xp: uint256[N_COINS] = self._xp_mem(old_balances)      rates: uint256[N_COINS] = RATES     \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u0430 \u0432 \u043f\u0443\u043b\u0435 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u044d\u0442\u043e\u0442 \u0430\u043a\u0442\u0438\u0432     x: uint256 = xp[i] + _dx * rates[i] \/ PRECISION     \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u0430 \u0432 \u043f\u0443\u043b\u0435 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0431\u0435\u0440\u0435\u0442 \u0435\u0433\u043e     y: uint256 = self._get_y(i, j, x, xp)      \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c     dy: uint256 = xp[j] - y - 1 \/\/ \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u0442\u0443\u0442 \u043c\u0430\u0433\u0438\u044f \u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c     \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u0435     dy_fee: uint256 = dy * self.fee \/ FEE_DENOMINATOR      \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0430\u043a\u0442\u0438\u0432 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0430\u043a\u0442\u0438\u0432\u0430 \u0438 \u0437\u0430 \u0432\u044b\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438.     dy = (dy - dy_fee) * PRECISION \/ rates[j]     assert dy &gt;= _min_dy, \"Exchange resulted in fewer coins than expected\"      \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430     dy_admin_fee: uint256 = dy_fee * self.admin_fee \/ FEE_DENOMINATOR     dy_admin_fee = dy_admin_fee * PRECISION \/ rates[j]      \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u044b \u0434\u0432\u0443\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 storage \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430     self.balances[i] = old_balances[i] + _dx     self.balances[j] = old_balances[j] - dy - dy_admin_fee      \/\/ \u0410\u043d\u0430\u043b\u043e\u0433 transferFrom(). \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0430\u043a\u0442\u0438\u0432 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043f\u0443\u043b     _response: Bytes[32] = raw_call(         self.coins[i],         concat(             method_id(\"transferFrom(address,address,uint256)\"),             convert(msg.sender, bytes32),             convert(self, bytes32),             convert(_dx, bytes32),         ),         max_outsize=32,     )     if len(_response) &gt; 0:         assert convert(_response, bool)      \/\/ \u0410\u043d\u0430\u043b\u043e\u0433 transfer(). \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0430\u043a\u0442\u0438\u0432 \u043e\u0442 \u043f\u0443\u043b\u0430 \u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e     _response = raw_call(         self.coins[j],         concat(             method_id(\"transfer(address,uint256)\"),             convert(msg.sender, bytes32),             convert(dy, bytes32),         ),         max_outsize=32,     )     if len(_response) &gt; 0:         assert convert(_response, bool)      log TokenExchange(msg.sender, i, _dx, j, dy)      return dy<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u043a\u0435\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0432 \u0445\u043e\u0434\u0435 \u043e\u0431\u043c\u0435\u043d\u0430 \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L434\" rel=\"noopener noreferrer nofollow\">get_dy()<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0430\u043a\u0442\u0438\u0432\u0430 \u0437\u0430 \u0432\u044b\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438.<\/p>\n<p>\u041e\u043d\u0430 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>exchange()<\/code>:<\/p>\n<pre><code class=\"javascript\">@view \/\/ \u0413\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f @external def get_dy(i: int128, j: int128, _dx: uint256) -&gt; uint256:     ...      x: uint256 = xp[i] + (_dx * rates[i] \/ PRECISION)     \/\/ \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432 \u043f\u0443\u043b\u0435, \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043e\u0431\u043c\u0435\u043d\u0430     y: uint256 = self._get_y(i, j, x, xp)     dy: uint256 = xp[j] - y - 1     fee: uint256 = self.fee * dy \/ FEE_DENOMINATOR      return (dy - fee) * PRECISION \/ rates[j]<\/code><\/pre>\n<p><strong>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f A<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L742C5-L742C11\" rel=\"noopener noreferrer nofollow\">ramp_A()<\/a>\u00a0\u0438\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L765\" rel=\"noopener noreferrer nofollow\">stop_ramp_A()<\/a>.<\/p>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043f\u0443\u043b\u0430, \u0447\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u0438 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043e\u0431\u043c\u0435\u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u043c\u0438.<\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0410, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431. \u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>ramp_A()<\/code>. \u0418\u0445 \u0434\u0432\u0430:\u00a0<strong><em>future<\/em>A<\/strong>\u00a0(uint256) \u0438\u00a0<strong><em>future<\/em>time<\/strong>\u00a0(uint256). \u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 future \u043d\u0435 \u0441\u043f\u0440\u043e\u0441\u0442\u0430. \u041e\u043d\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 A \u043d\u0430 \u0441\u043c\u0430\u0440\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f <em>future<\/em>A \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f <em>future<\/em>time. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u044d\u0442\u043e \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 A \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L154C5-L154C9\" rel=\"noopener noreferrer nofollow\">_A()<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"javascript\">@view @internal def _A() -&gt; uint256:     t1: uint256 = self.future_A_time \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u044b\u0437\u043e\u0432\u043e\u043c ramp_A() \u0444\u0443\u043d\u043a\u0446\u0438\u0438     A1: uint256 = self.future_A \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u044b\u0437\u043e\u0432\u043e\u043c ramp_A() \u0444\u0443\u043d\u043a\u0446\u0438\u0438      \/\/ \u041a\u043e\u0434 \u043d\u0438\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0435\u0436\u0434\u0443 initial_A_time \u0438 future_A_time \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 A (\u043c\u0435\u0436\u0434\u0443 initial_A \u0438 future_A)     if block.timestamp &lt; t1:         A0: uint256 = self.initial_A         t0: uint256 = self.initial_A_time         # Expressions in uint256 cannot have negative numbers, thus \"if\"         if A1 &gt; A0:             return A0 + (A1 - A0) * (block.timestamp - t0) \/ (t1 - t0)         else:             return A0 - (A0 - A1) * (block.timestamp - t0) \/ (t1 - t0)      else:  # when t1 == 0 or block.timestamp &gt;= t1         return A1<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f A \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u0430\u0432\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u0430\u0442\u0435 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>ramp_A()<\/code>.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>stop_ramp_A()<\/code>\u00a0\u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f \u0410 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442.<\/p>\n<p>\u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0437\u043e\u0440\u0430 \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0443\u043b\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u043f\u0443\u043b\u043e\u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b \u043f\u043e\u0445\u043e\u0436, \u043d\u043e \u0441 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b lending \u043f\u0443\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0443\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 lp \u0442\u043e\u043a\u0435\u043d\u044b \u043a\u0440\u0435\u0434\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430 \u043f\u0443\u043b \u0437\u043d\u0430\u0435\u0442 \u0435\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u043e\u043a\u0435\u043d. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0443\u043b \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c, \u043a\u0430\u043a \u0432 lp \u0442\u043e\u043a\u0435\u043d\u0430\u0445, \u0442\u0430\u043a \u0438 \u0432 \u0431\u0430\u0437\u043e\u0432\u044b\u0445.<\/p>\n<h4>LP \u0442\u043e\u043a\u0435\u043d\u044b<\/h4>\n<p>\u0415\u0441\u0442\u044c \u0442\u0440\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 LP \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0434\u043b\u044f \u043f\u0443\u043b\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/tokens\/CurveTokenV1.vy\" rel=\"noopener noreferrer nofollow\">CurveTokenV1<\/a>: \u0434\u043b\u044f Vyper ^0.1.0-beta.16<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/tokens\/CurveTokenV2.vy\" rel=\"noopener noreferrer nofollow\">CurveTokenV2<\/a>: \u0434\u043b\u044f Vyper ^0.2.0<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/tokens\/CurveTokenV3.vy\" rel=\"noopener noreferrer nofollow\">CurveTokenV3<\/a>: \u0434\u043b\u044f Vyper ^0.2.0 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f<\/p>\n<\/li>\n<\/ul>\n<p>LP \u0442\u043e\u043a\u0435\u043d\u044b \u043c\u0438\u043d\u0442\u044f\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432 \u043f\u0443\u043b \u0438 \u0441\u0436\u0438\u0433\u0430\u044e\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f. \u0412 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e.<\/p>\n<p>\u0422\u0440\u0435\u0442\u044c\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u043d\u0435\u0435 \u043f\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044e \u0433\u0430\u0437\u0430. \u041f\u043b\u044e\u0441 \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00a0<code>allowance<\/code>:\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/tokens\/CurveTokenV3.vy#L115\" rel=\"noopener noreferrer nofollow\">increaseAllowance()<\/a>\u00a0\u0438\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/tokens\/CurveTokenV3.vy#L132\" rel=\"noopener noreferrer nofollow\">decreaseAllowance()<\/a>.<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0432 \u043a\u043e\u0434\u0435 \u0442\u043e\u043a\u0435\u043d\u0430 \u043d\u0435\u0442, \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f ERC-20 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u00a0<code>Vyper<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0437\u0430\u0431\u0430\u0432\u043d\u044b\u0439 \u0444\u0430\u043a\u0442, \u0442\u043e\u0447\u043d\u0435\u0435\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/tokens\/CurveTokenV3.vy#L189\" rel=\"noopener noreferrer nofollow\">\u0444\u0443\u043d\u043a\u0446\u0438\u044e<\/a>:<\/p>\n<pre><code class=\"javascript\">def set_name(_name: String[64], _symbol: String[32]):     assert Curve(self.minter).owner() == msg.sender     self.name = _name     self.symbol = _symbol<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0434\u0440\u0443\u0433 \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442\u0435 \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0435 lp \u0442\u043e\u043a\u0435\u043d\u044b \u043f\u0443\u043b\u0430, \u0442\u043e \u0437\u043d\u0430\u0439\u0442\u0435, \u044d\u0442\u043e \u0430\u0434\u043c\u0438\u043d \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b LP \u0442\u043e\u043a\u0435\u043d\u0430.<\/p>\n<h4>Deposit contract<\/h4>\n<p>\u041f\u0443\u043b \u043c\u043e\u0436\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430. \u042d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0442\u0438\u043f\u043e\u0432 \u043f\u0443\u043b\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>lending: \u0448\u0430\u0431\u043b\u043e\u043d\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/y\/DepositTemplateY.vy\" rel=\"noopener noreferrer nofollow\">DepositTemplateY.vy<\/a><\/p>\n<\/li>\n<li>\n<p>meta: \u0448\u0430\u0431\u043b\u043e\u043d\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/meta\/DepositTemplateMeta.vy\" rel=\"noopener noreferrer nofollow\">DepositTemplateMeta.vy<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u043e-\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 &#8212; \u044d\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0443\u043b\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u0438\u0437 \u043f\u0443\u043b\u0430 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u0410 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 \u043d\u0435\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0442.<\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u043e\u043d \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0443\u043b\u0430. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/y\/DepositTemplateY.vy#L48\" rel=\"noopener noreferrer nofollow\">\u0441\u0432\u044f\u0437\u0430\u043d<\/a>\u00a0\u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430 \u0438 \u043f\u0443\u043b\u0430.<\/p>\n<pre><code class=\"javascript\">def __init__(     _coins: address[N_COINS], \/\/ LP \u0442\u043e\u043a\u0435\u043d\u044b \u043f\u0443\u043b\u0430 lending \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0438\u043b\u0438 meta \u043f\u0443\u043b\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430     _underlying_coins: address[N_COINS], \/\/ \u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 LP \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043e\u0431\u043c\u0435\u043d\u0430     _curve: address, \/\/ \u0410\u0434\u0440\u0435\u0441 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u0443\u043b\u0430     _token: address \/\/ LP \u0442\u043e\u043a\u0435\u043d \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0443\u043b\u0430 ):     ....<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u0438 \u0434\u0435\u043f\u043b\u043e\u0435, \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0443\u043b\u0430 \u0438 \u0432\u0441\u0435\u0445 \u043d\u0443\u0436\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432.<\/p>\n<h3>\u041e\u0431\u0437\u043e\u0440 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 curve<\/h3>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u043c\u0435\u043d \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432 (StableSwap), \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0438\u043c\u0435\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439. \u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 Curve:<\/p>\n<ul>\n<li>\n<p>Curve DAO<\/p>\n<\/li>\n<li>\n<p>Curve Stablecoin<\/p>\n<\/li>\n<li>\n<p>Savings crbUSD<\/p>\n<\/li>\n<li>\n<p>Curve Lending<\/p>\n<\/li>\n<li>\n<p>CryptoSwap<\/p>\n<\/li>\n<\/ul>\n<p><strong>Curve DAO<\/strong><\/p>\n<p>\u0414\u043b\u044f DAO Curve \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u00a0<a href=\"https:\/\/aragon.org\/\" rel=\"noopener noreferrer nofollow\">AragonDAO<\/a>. \u041d\u043e \u043d\u0435 \u0432\u0441\u0435-\u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-aragon-voting\" rel=\"noopener noreferrer nofollow\">Voting.sol<\/a>\u00a0\u043f\u043e\u0434 \u0441\u0435\u0431\u044f.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0438, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 veCRV (voted-escrowed CRV) \u0442\u043e\u043a\u0435\u043d\u0430. veCRV \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0437\u0430\u0441\u0442\u0435\u0439\u043a\u0430\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u043e\u043a\u0435\u043d \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 CRV. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0441\u043c\u044b\u0441\u043b veCRV \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u0430\u0432\u0430 \u0433\u043e\u043b\u043e\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p><strong>Curve Stablecoin<\/strong><\/p>\n<p>\u042d\u0442\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d crvUSD \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u043d\u044b\u043c \u0437\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c. \u0418\u043c\u0435\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0435\u043d\u044b, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 LLAMMA (Lending-Liquidating AMM Algorithm). \u041d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043f\u0443\u043b\u0430\u0445), \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>\u041b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043b\u043e\u0433 \u0438 \u0441\u043c\u0438\u043d\u0442\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d.<\/p>\n<p><strong>Savings crvUSD \u0438\u043b\u0438 scrvUSD<\/strong><\/p>\n<p>scrvUSD \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f crvUSD. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0441\u0442\u0435\u0439\u043a\u0430\u0442\u044c crvUSD \u0432 Savings Vault. \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 crvUSD. \u0415\u0441\u043b\u0438 \u0431\u044b \u0435\u0433\u043e \u043d\u0435 \u0431\u044b\u043b\u043e, \u0442\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c crvUSD \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0442\u044c \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 crvUSD \u0440\u0430\u0441\u0442\u0435\u0442 \u0438 \u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u043b\u044f scrvUSD, \u0447\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0441\u0440\u043e\u043a\u0435.<\/p>\n<p><strong>Curve Lending<\/strong><\/p>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c crvUSD \u0441 \u043c\u044f\u0433\u043a\u043e\u0439 \u043b\u0438\u043a\u0432\u0438\u0434\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c LLAMMA (Lending-Liquidating AMM Algorithm). \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u0435 \u0442\u0435\u043c, \u043a\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c. \u041c\u044f\u0433\u043a\u0430\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u0435\u043c\u0449\u0438\u043a\u043e\u0432<\/p>\n<p><strong>CryptoSwap<\/strong><\/p>\n<p>\u041d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u043e\u0431\u043c\u0435\u043d\u0435. \u0414\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0440\u043a\u0435\u0442-\u043c\u0435\u0439\u043a\u0435\u0440\u0430. \u0421\u0443\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0434\u043d\u043e\u0439 \u0446\u0435\u043d\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 (\u041f\u0440\u0438\u0432\u0435\u0442 Uniswap v3 \ud83d\ude05).<\/p>\n<h3>Fees<\/h3>\n<p>\u0412 Curve \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041f\u0443\u043b\u044b \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u041a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0441 \u043e\u0431\u043c\u0435\u043d\u043e\u0432 \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u0430\u0445 \u043f\u0443\u043b\u0430, \u043d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0438 \u0432 lp \u0442\u043e\u043a\u0435\u043d\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0420\u044b\u043d\u043a\u0438 crvUSD. \u041f\u0440\u043e\u0446\u0435\u043d\u0442\u044b \u0441 \u0437\u0430\u0439\u043c\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043b\u044e\u0431\u044b\u0445 \u0442\u0438\u043f\u0430\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u0431\u0443\u0434\u044c \u0442\u043e LP \u0438\u043b\u0438 \u00ab\u043e\u0431\u044b\u0447\u043d\u044b\u0435\u00bb \u0442\u043e\u043a\u0435\u043d\u044b.<\/p>\n<p>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/964\/94c\/c14\/96494cc14e4abb8de4bbd49f826e1c00.png\" width=\"793\" height=\"238\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/964\/94c\/c14\/96494cc14e4abb8de4bbd49f826e1c00.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/964\/94c\/c14\/96494cc14e4abb8de4bbd49f826e1c00.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u0445\u0435\u043c\u0435, \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438. \u0414\u043b\u044f crvUSD \u0441\u0431\u043e\u0440 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u00a0<a href=\"https:\/\/github.com\/curvefi\/fee-splitter\/blob\/main\/contracts\/FeeSplitter.vy\" rel=\"noopener noreferrer nofollow\">FeeSplitter.vy<\/a>. \u0414\u043b\u044f \u043f\u0443\u043b\u043e\u0432 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u043f\u0443\u043b\u043e\u0432 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0435 \u043f\u0443\u043b\u0430 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy#L854C5-L854C24\" rel=\"noopener noreferrer nofollow\">withdraw_admin_fees()<\/a>\u00a0\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0443 \u043f\u0443\u043b\u0430 \u0441\u043d\u044f\u0442\u044c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u0438 \u043a\u0430\u043a \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u0434\u043e FeeCollector \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0436\u0438\u0433\u0430\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043d\u043e\u0440\u043e\u0434\u043d\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043e\u0434\u0438\u043d\u00a0<code>crvUSD<\/code>\u00a0\u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 CowSwap. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u044d\u0442\u043e \u0434\u043b\u044f \u0447\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b Curve. \u0412 \u0442\u0435\u0445 \u0441\u0435\u0442\u044f\u0445, \u0433\u0434\u0435 \u043d\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 CowSwap, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0430\u044f \u0441\u0445\u0435\u043c\u0430 (\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f), \u0441 \u0447\u0435\u0442\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u043c\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0438 \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u0433\u0438\u0431\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439.<\/p>\n<h3>Curve Wars<\/h3>\n<blockquote>\n<p>\u041c\u044b \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0441\u0430\u043c\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0433\u043b\u0430\u0432\u044b. \u0422\u043e \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0437\u0434\u0435\u0441\u044c, \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e!\u00a0<a href=\"https:\/\/every.to\/almanack\/curve-wars\" rel=\"noopener noreferrer nofollow\">\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0441\u0442\u0430\u0442\u044c\u0435 &#171;Field Guide to the Curve Wars: DeFi\u2019s Fight for Liquidity&#187;<\/a>. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0447\u0442\u0438\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043c\u043e\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u043d\u0438\u0436\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u043c\u0435\u0439\u0442\u0435 \u0432\u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 2022 \u0433\u043e\u0434\u0443 \u0438 \u043d\u0443\u0436\u043d\u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u0441 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f.<\/p>\n<\/blockquote>\n<p>\u041c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438, \u0447\u0442\u043e Curve \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0440\u044b\u043d\u043e\u043a \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c. \u0414\u043b\u044f \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 Curve \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0441\u0442\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0438 \u044d\u0442\u043e \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0442\u0435\u043a\u043b\u043e \u0432 \u0441\u0430\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 &#171;\u0432\u043e\u0439\u043d\u044b&#187;.<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0432\u043e\u0439\u043d \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441\u0442\u0438\u043c\u0443\u043b\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u043e\u043a\u0435\u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00a0<strong>CRV<\/strong>. \u042d\u0442\u043e\u0442 \u0442\u043e\u043a\u0435\u043d \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u0443\u043b \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c LP \u0442\u043e\u043a\u0435\u043d\u043e\u0432.<\/p>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0443\u043b 3Pool (TVL \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f $167.36M), \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 1.15% \u0433\u043e\u0434\u043e\u0432\u044b\u0445.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0a0\/273\/15c\/0a027315cd770300ba0b459f078a8848.png\" width=\"1441\" height=\"323\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0a0\/273\/15c\/0a027315cd770300ba0b459f078a8848.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0a0\/273\/15c\/0a027315cd770300ba0b459f078a8848.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0443\u00a0<strong>Rewards tAPR<\/strong>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u0435 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 1.80% \u0434\u043e 4.51% \u0432 \u0442\u043e\u043a\u0435\u043d\u0435 CRV. \u0418 \u044f \u0445\u043e\u0447\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043f\u0440\u0438\u0431\u0430\u0432\u043a\u0430.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c CRV \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0439, \u0430 \u043f\u043e\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0441\u043b\u0438\u0432\u0430\u0442\u044c CRV, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u0431\u044b \u043a \u043e\u0431\u0435\u0441\u0446\u0435\u043d\u0438\u0432\u0430\u043d\u0438\u044e \u0430\u043a\u0442\u0438\u0432\u0430. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 veCRV.<\/p>\n<p><strong>veCRV<\/strong><\/p>\n<p>\u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u043e\u0431\u043c\u0435\u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 Curve \u0432\u0437\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f, \u0447\u0430\u0441\u0442\u044c \u0438\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 veCRV.<\/p>\n<p>\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f veCRV, \u043a\u0430\u043a\u00a0<a href=\"https:\/\/curve.readthedocs.io\/dao-vecrv.html\" rel=\"noopener noreferrer nofollow\">Vote Escrowed Curve<\/a>\u00a0\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c: \u0437\u0430\u0441\u0442\u0435\u0439\u043a\u0430\u0442\u044c CRV. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0443 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u0432 CRV \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u0438\u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0430\u043a\u0442\u0438\u0432\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u044b\u0433\u043e\u0434\u043d\u0435\u0435\u00a0<a href=\"https:\/\/dao.curve.fi\/#\/ethereum\/vecrv\/create\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u0441\u0442\u0435\u0439\u043a\u0430\u0442\u044c<\/a>\u00a0\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c veCRV, \u043d\u0435\u0436\u0435\u043b\u0438 \u0447\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0441\u043b\u0438\u0432\u0430\u0442\u044c CRV.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/05e\/766\/617\/05e766617035d3a52d7679650da0a57e.png\" width=\"570\" height=\"511\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/05e\/766\/617\/05e766617035d3a52d7679650da0a57e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/05e\/766\/617\/05e766617035d3a52d7679650da0a57e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c CRV \u043c\u043e\u0436\u043d\u043e \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043d\u0430 1 \u043d\u0435\u0434\u0435\u043b\u044e \u0438 \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043d\u0430 4 \u0433\u043e\u0434\u0430. \u041f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u0430\u044f \u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u0440\u043e\u043a\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c veCRV \u0434\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0434\u043e\u0445\u043e\u0434. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435! \u0414\u043b\u044f \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u0432 veCRV \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c \u0437\u0430 \u043f\u0443\u043b\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f CRV. \u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0443\u043b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0433\u043e\u043b\u043e\u0441\u043e\u0432, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0442\u0435\u0439\u043a\u0435\u0440\u044b CRV, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u0443\u043b. \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0440\u043e\u0442 CRV \u0432 Curve.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0440\u043e\u0442, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0441\u0445\u0435\u043c\u0443 \u043d\u0438\u0436\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bdc\/204\/923\/bdc204923eaf52c57735d6c10c6e5534.png\" width=\"864\" height=\"567\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bdc\/204\/923\/bdc204923eaf52c57735d6c10c6e5534.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bdc\/204\/923\/bdc204923eaf52c57735d6c10c6e5534.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u043a\u0435\u043d \u0438 \u0445\u043e\u0447\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 Curve, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0443\u043b\u0430, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0443\u043b \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u044b\u043c. \u042d\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0443\u0442\u044c, \u043d\u043e \u0435\u0441\u043b\u0438 \u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e veCRV, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c \u0437\u0430 \u0441\u0432\u043e\u0439 \u043f\u0443\u043b \u0438 \u043f\u0443\u043b \u043d\u0430\u0447\u043d\u0435\u0442 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044c CRV, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c CRV \u0438 \u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432 Curve \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f. \u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f &#171;\u0432\u043e\u0439\u043d\u044b&#187;!<\/p>\n<p><strong>Convex Finance<\/strong><\/p>\n<p>\u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0431\u0438\u0442\u0432\u0430 \u0432\u044b\u0438\u0433\u0440\u0430\u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c\u00a0<a href=\"https:\/\/www.convexfinance.com\/\" rel=\"noopener noreferrer nofollow\">Convex<\/a>. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043d\u0430\u0447\u0438\u043d\u0430\u043b, \u043a\u0430\u043a \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440 \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 Curve.<\/p>\n<p>\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0443 \u043d\u0430\u0441 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 veCRV, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f CRV \u0432 \u043f\u0443\u043b\u0435. \u041d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f veCRV, \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0443\u043b\u044b. \u0417\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0439 \u043a\u0440\u0443\u0433! Convex \u0440\u0435\u0448\u0438\u043b \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u0445 veCRV \u0443 \u0441\u0435\u0431\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u0435, \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c veCRV \u0432 Curve \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0439\u0442\u0438 \u0432 Convex \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c CRV, \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u044f veCRV.<\/p>\n<p>\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/84a\/ccc\/711\/84accc71139395f4ff3da0ae2f7996ca.png\" width=\"1280\" height=\"468\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/84a\/ccc\/711\/84accc71139395f4ff3da0ae2f7996ca.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/84a\/ccc\/711\/84accc71139395f4ff3da0ae2f7996ca.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ol>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432 Curve<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 CRV. \u041a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0443\u043f\u0438\u0442\u044c CRV<\/p>\n<\/li>\n<li>\n<p>\u0412\u043d\u043e\u0441\u0438\u0442\u0435 CRV \u0432 Convex<\/p>\n<\/li>\n<li>\n<p>Convex \u0437\u0430 \u0432\u0430\u0441 \u0441\u0442\u0435\u0439\u043a\u0430\u0435\u0442 CRV \u0432 Curve<\/p>\n<\/li>\n<li>\n<p>Convex \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 veCRV<\/p>\n<\/li>\n<li>\n<p>Convex \u0434\u0430\u0435\u0442 \u0432\u0430\u043c cvxCRV \u0437\u0430 \u043c\u0435\u0441\u0442\u043e \u0432\u0430\u0448\u0435\u0433\u043e CRV<\/p>\n<\/li>\n<li>\n<p>cvxCRV \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0441\u0442\u0435\u0439\u043a\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u043b\u044e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e Convex \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430 veCRV. \u041b\u0438\u0431\u043e cvxCRV \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0442\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c CRV. \u0418 \u044d\u0442\u043e \u043e\u0431\u0445\u043e\u0434 4-x \u043b\u0435\u0442\u043d\u0435\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 CRV \u0432 Curve \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0445\u043e\u0434\u0430!<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 Convex \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432 \u0441\u0435\u0431\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f Curve. \u0418 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u043a\u0442\u043e\u0440 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0442\u043e\u043a\u0435\u043d CVX \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0438. \u041a\u0430\u043a \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u0437\u0430 \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c? \u041f\u0440\u0430\u0432\u043e \u0433\u043e\u043b\u043e\u0441\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u0430\u043a Convex \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 veCRV, \u043a\u0430\u043a\u0438\u0435 \u043f\u0443\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p><strong>\u0412\u0437\u044f\u0442\u043e\u0447\u043d\u0438\u0447\u0435\u0441\u0442\u0432\u043e CVX<\/strong><\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432, \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0441\u0432\u043e\u0438\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u0442\u043e\u043a\u0435\u043d\u044b CVX \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u043a\u0435\u043d\u043e\u0432 CRV, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0434\u043b\u044f \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0441\u0432\u043e\u0438 \u043f\u0443\u043b\u044b, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 Convex \u0438 \u0442\u0430\u043a \u0443\u0436\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0433\u043e\u043b\u043e\u0441\u043e\u0432.<\/p>\n<p>\u0418 \u0437\u0434\u0435\u0441\u044c \u0441\u043d\u043e\u0432\u0430 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u0443\u0442\u0438: \u043a\u0443\u043f\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e CVX \u0441\u0430\u043c\u043e\u043c\u0443 \u0438\u043b\u0438 \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0442\u043e\u043c\u0443 \u0443 \u043a\u043e\u0433\u043e \u044d\u0442\u043e\u0442 CVX \u0435\u0441\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u0434\u043b\u044f \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430 \u043d\u0430 Curve \u043f\u043b\u0430\u0442\u044f\u0442 \u0434\u0435\u0440\u0436\u0430\u0442\u0435\u043b\u044f\u043c CVX. \u0412 \u043f\u043b\u044e\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435, \u0443 \u0434\u0435\u0440\u0436\u0430\u0442\u0435\u043b\u0435\u0439 CVX \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0445\u043e\u0434, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u0430\u043c\u0438\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c CVX, \u0434\u0435\u0448\u0435\u0432\u043b\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0442\u0435\u043c \u0443 \u043a\u043e\u0433\u043e \u043e\u043d \u0435\u0441\u0442\u044c.<\/p>\n<p>\u0418 \u043d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0437\u044e\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u043e\u0439\u043d\u044b \u043d\u0430 Curve \u043e\u043a\u043e\u043d\u0447\u0435\u043d\u044b. Convex \u043f\u043e\u0431\u0435\u0434\u0438\u043b! \u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u043e\u0442 \u043a\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442 veCVX, \u0442\u043e\u0442 \u043f\u043e\u0431\u0435\u0434\u0438\u0442 \u0432 \u0432\u043e\u0439\u043d\u0435 Convex. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434<\/h3>\n<p>\u041d\u0430\u0447\u0430\u0442\u044c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0433\u043b\u0430\u0432\u0443 \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u0441\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\n<\/th>\n<th>\n<p align=\"left\">Uniswap v2<\/p>\n<\/th>\n<th>\n<p align=\"left\">Uniswap v3<\/p>\n<\/th>\n<th>\n<p align=\"left\">Curve<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Language<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Solidity<\/p>\n<\/td>\n<td>\n<p align=\"left\">Solidity<\/p>\n<\/td>\n<td>\n<p align=\"left\">Vyper<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Slippage<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">High<\/p>\n<\/td>\n<td>\n<p align=\"left\">Low<\/p>\n<\/td>\n<td>\n<p align=\"left\">Low<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Pool<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2 tokens<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 tokens<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 or more<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Liquidity<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Both tokens<\/p>\n<\/td>\n<td>\n<p align=\"left\">Depends on position and price<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 to all (\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u0438\u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0442\u043e\u043a\u0435\u043d\u0435 \u0438\u043b\u0438 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Liquidity fee<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">None<\/p>\n<\/td>\n<td>\n<p align=\"left\">None<\/p>\n<\/td>\n<td>\n<p align=\"left\">Fee on imbalance<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Swap fee<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Token in<\/p>\n<\/td>\n<td>\n<p align=\"left\">Token in<\/p>\n<\/td>\n<td>\n<p align=\"left\">Token out<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u042f \u0434\u0443\u043c\u0430\u044e, \u0432\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e Curve, \u0432 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0440\u043e\u0434\u0435, \u0434\u0438\u0430\u043c\u0435\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 Uniswap. \u042f\u0437\u044b\u043a \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 &#8212; vyper, \u0432 \u043f\u0443\u043b\u0435 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0432\u0443\u0445, \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u0431\u0435\u0440\u0435\u0442. \u042f \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e \u043d\u0435 \u043d\u0430\u043c\u0435\u043a\u0430\u044e, \u043d\u043e \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e&#8230; Curve &#8212; \u044d\u0442\u043e \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442 Uniswap!? \u041a\u0430\u0436\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0443\u0436\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f.<\/p>\n<p>Curve &#8212; \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u0443\u043b\u043e\u0432 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e lending \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0435\u0442\u0430\u043f\u0443\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u0443\u043b\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c lp \u0442\u043e\u043a\u0435\u043d\u044b \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0443\u043b\u043e\u0432. \u041c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0438\u0440\u043e\u0433\u0430, \u0442\u043e\u043a\u0435\u043d\u044b \u0432 \u043f\u0443\u043b, lp \u0442\u043e\u043a\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0443\u043b \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>\u041d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, Curve \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0441\u0432\u043e\u0435\u0439 \u043c\u0430\u0433\u0438\u0435\u0439 \u0432\u043e\u043a\u0440\u0443\u0433 \u0441\u0432\u043e\u0435\u0433\u043e CRV, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0438\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u0418 \u044d\u0442\u043e \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d crvUSD \u0438 Curve Lending \u0441 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c \u043b\u0438\u043a\u0432\u0438\u0434\u0430\u0446\u0438\u0438, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043a\u0430\u043a LLAMMA (Lending Liquidating Automated Market Maker Algorithm).<\/p>\n<p>\u0421 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f, \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438 whitepaper. \u041e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0443\u043b\u0430 \u0438 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u0443\u043b\u043e\u043c \u0438 \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u0414\u0430\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441 vyper \u044f \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0435\u0433\u043e \u0432 \u0441\u0432\u043e\u0435\u0439 \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438. \u0425\u043e\u0440\u043e\u0448\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c!<\/p>\n<h3>Links<\/h3>\n<ol>\n<li>\n<p>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f\u00a0<a href=\"https:\/\/docs.curve.fi\/\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/curve.readthedocs.io\/index.html\" rel=\"noopener noreferrer nofollow\">Protocol Overview<\/a><\/p>\n<\/li>\n<li>\n<p>Cyfrin courses.\u00a0<a href=\"https:\/\/updraft.cyfrin.io\/courses\/curve-v1\" rel=\"noopener noreferrer nofollow\">Curve Stableswap<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/every.to\/almanack\/curve-wars\" rel=\"noopener noreferrer nofollow\">Field Guide to the Curve Wars: DeFi\u2019s Fight for Liquidity<\/a><\/p>\n<\/li>\n<\/ol>\n<p>\u041c\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0438\u0448\u0435\u043c \u0432 \u043d\u0430\u0448\u0435\u043c <a href=\"https:\/\/t.me\/+8p2iaLV6_tBmNTZi\" rel=\"noopener noreferrer nofollow\">Telegram-\u043a\u0430\u043d\u0430\u043b\u0435<\/a>. \u0418\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u044b\u0441\u043b\u0438 \u0432\u0441\u043b\u0443\u0445, \u0438\u043d\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438. \u041d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0441\u0451 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0435\u043c \u0432 \u0441\u0442\u0430\u0442\u044c\u0438, \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0449\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0441\u0442 \u0432 \u0442\u0435\u043b\u0435\u0433\u0443. \u0422\u0430\u043a \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u0447\u0442\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c, \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/909202\/\"> https:\/\/habr.com\/ru\/articles\/909202\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p><strong>Curve<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u043c\u0435\u043d\u043d\u0438\u043a (DEX) \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0440\u043a\u0435\u0442-\u043c\u0435\u0439\u043a\u0435\u0440\u0430 (AMM) \u0434\u043b\u044f Ethereum \u0438 EVM-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u0432. \u041f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0437\u0430\u0442\u043e\u0447\u0435\u043d \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432, \u043d\u043e \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u044b\u0435 \u0430\u043a\u0442\u0438\u0432\u044b \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u043c\u0435\u043d\u044f\u043d\u044b.<\/p>\n<h3>\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u0438 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u043e\u0439 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f Curve, \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u0441\u0442\u0430\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a\u00a0<a href=\"https:\/\/app.uniswap.org\/\" rel=\"noopener noreferrer nofollow\">Uniswap<\/a>\u00a0v2. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 Uniswap \u0443\u0436\u0435 \u0432\u043d\u0435\u0434\u0440\u0438\u043b \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u00a0<code>x * y = k<\/code>. \u042d\u0442\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0443\u043b\u0430, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0446\u0435\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432 \u043f\u0443\u043b\u0435 Uniswap ETH\/USDC \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 $1_000_000. \u0415\u0441\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u044c ETH \u043d\u0430 \u0441\u0443\u043c\u043c\u0443 $750_000, \u0442\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435 USDC, \u0447\u0435\u043c $750_000, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442 \u0431\u0430\u043b\u0430\u043d\u0441 ETH \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e USDC \u0432 \u043f\u0443\u043b\u0435.<\/p>\n<p>\u0418 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u043e\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0445 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f 1 \u0434\u043e\u043b\u043b\u0430\u0440\u0443. \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u0443\u043b USDT\/USDC, \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 USDT \u043d\u0430 USDC, \u0432 \u043f\u0443\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 USDT \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 USDC, \u0438 \u0434\u0430\u0436\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u044b \u043e\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a 1 \u0434\u043e\u043b\u043b\u0430\u0440\u0443 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u044b\u043b\u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b Curve \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0443\u044e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u043c\u0435\u0436\u0434\u0443 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0446\u0435\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f Uniswap \u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u043e\u0439. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u0441\u044f, \u043d\u043e \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 Uniswap. \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0446\u0435\u043d\u044b Uniswap \u0438 Curve (StableSwap), \u0432\u0437\u044f\u0442\u044b\u0439 \u0438\u0437\u00a0<a href=\"https:\/\/docs.curve.fi\/assets\/pdf\/stableswap-paper.pdf\" rel=\"noopener noreferrer nofollow\">whitepaper<\/a>.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0413\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 (dx), \u0446\u0435\u043d\u0430 \u0443 StableSwap \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435.<\/p>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 Curve \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Uniswap v2 \u0438 Curve (\u0414\u043b\u044f Uniswap \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0443\u043b\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f v2). \u041d\u0430\u00a0<code>$100_000<\/code>, \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 USDC \u043d\u0430 DAI, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0439. \u041f\u0440\u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 Uniswap V3 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0446\u0435\u043f\u0442 &#171;\u041a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438&#187; \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0446\u0435\u043d\u044b. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0441\u0447\u0435\u0442 \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0430\u0446\u0438\u0438 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0446\u0435\u043d\u044b.<\/p>\n<h3>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 Curve<\/h3>\n<p>Curve \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0440\u043a\u0435\u0442-\u043c\u0435\u0439\u043a\u0435\u0440\u0430, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432. \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0430\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432.<\/p>\n<ul>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b\u00a0<code>x + y = k<\/code>. \u0414\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u00a0<code>x * y = k<\/code>. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u0442\u044c, \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 Uniswap v2 \u0438 v3.<\/p>\n<\/li>\n<\/ul>\n<p>Curve \u0432\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0435\u0435 \u0431\u0443\u043a\u0432\u043e\u0439\u00a0<code>D<\/code>. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u00a0<code>k<\/code>\u00a0\u0432 Uniswap. \u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u0443\u043b\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0432\u0443\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432, \u0442\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f.<\/p>\n<figure class=\"\"><\/figure>\n<p>\u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435:<\/p>\n<ul>\n<li>\n<p>D &#8212; \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>x &#8212; i-\u0439 \u0430\u043a\u0442\u0438\u0432<\/p>\n<\/li>\n<li>\n<p>n &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435<\/p>\n<\/li>\n<li>\n<p>\u03a3 &#8212; \u0441\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u041f &#8212; \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0448\u0430\u0433 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b Curve \u0438\u0437 \u0444\u043e\u0440\u043c\u0443\u043b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a\u00a0<a href=\"https:\/\/docs.curve.fi\/references\/whitepapers\/stableswap\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 StableSwap<\/a>. \u041c\u044b \u0436\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 StableSwap.<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0412 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f (amplification coefficient), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a\u00a0<code>A<\/code>. \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f\u00a0<code>A<\/code>\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u043e\u0440\u043c\u0443 \u043a\u0440\u0438\u0432\u043e\u0439 \u043e\u0431\u043c\u0435\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u0430\u043a\u0442\u0438\u0432\u0430\u043c\u0438 \u0432 \u043f\u0443\u043b\u0435 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c.<\/p>\n<p>\u0412\u044b\u0441\u043e\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0\u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0443\u043b \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043f\u0443\u043b \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u043e\u0439, \u0447\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u043c\u0435\u043d\u0430\u0445. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u0431\u043b\u0438\u0437\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0446\u0435\u043d\u044b \u043e\u0431\u043c\u0435\u043d\u0430, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0431\u043c\u0435\u043d \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438 \u0434\u0435\u0448\u0435\u0432\u044b\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>\u041d\u0438\u0437\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0\u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0443\u043b \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0430\u043a \u043f\u0443\u043b \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c (\u043a\u0430\u043a \u0432 Uniswap), \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0442\u043e\u0440\u0433\u043e\u0432 \u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0446\u0435\u043d.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0443\u043b\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u00a0<code>x<\/code>\u00a0\u0438\u00a0<code>y<\/code>, \u0430\u00a0<code>\u0410<\/code>\u00a0\u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 0. \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0441 \u043a \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 Curve \u0437\u0430 \u043c\u0435\u0441\u0442\u043e:<\/p>\n<ul>\n<li>\n<p>A -&gt; 0<\/p>\n<\/li>\n<li>\n<p>x[i] -&gt;\u00a0<code>x<\/code>\u00a0\u0438\u00a0<code>y<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 0, \u0434\u0430\u0435\u0442 0:<\/p>\n<figure class=\"\"><\/figure>\n<p>\u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043d\u0430\u0448\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#8212; \u044d\u0442\u043e \u0433\u0438\u043f\u0435\u0440\u0431\u043e\u043b\u0430 \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432. \u0421\u0438\u043d\u0438\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u0431 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0441 A \u043d\u0435 \u0440\u0430\u0432\u043d\u044b\u043c \u043d\u0443\u043b\u044e.<\/p>\n<figure class=\"\"><\/figure>\n<p>\u041f\u0440\u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0&#8212; \u044d\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0<code>A<\/code>\u00a0&#8212; \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 \u043a \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c Curve \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043b\u0430\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u043e\u0432.<\/p>\n<h3>StableSwap exchange<\/h3>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c StableSwap \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0443\u043b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u043e\u0434 \u044d\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435. \u041c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u044d\u0442\u043e\u043c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 Curve.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043d\u0435\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u0435\u043d \u0442\u0438\u043f \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439, \u043a\u0430\u043a \u043a \u0444\u0438\u0430\u0442\u0443, \u0442\u0430\u043a \u0438 \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u0440\u0438\u043f\u0442\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u043c.<\/p>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430, Curve \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/curve-contract\/tree\/master\/contracts\/pools\" rel=\"noopener noreferrer nofollow\">StableSwap<\/a>: \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/curvefi\/stableswap-ng\" rel=\"noopener noreferrer nofollow\">StableSwap-ng<\/a>: \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432\u00a0<a href=\"https:\/\/github.com\/curvefi\/stableswap-ng\/tree\/main\/deployments\" rel=\"noopener noreferrer nofollow\">deployments<\/a>\u00a0StableSwap-ng \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0442\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d\u0430 \u044d\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e: Mantle, XLayer, zkSync \u0438 \u0434\u0440\u0443\u0433\u0438\u0435.<\/p>\n<\/blockquote>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b StableSwap, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u0442\u0435\u0439.<\/p>\n<h4>StableSwap<\/h4>\n<p>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0443\u043b \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435\u00a0<code>vyper<\/code>\u00a0\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u00a0<a href=\"https:\/\/github.com\/eth-brownie\/brownie\" rel=\"noopener noreferrer nofollow\">Brownie<\/a>.<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u043f\u0443\u043b\u043e\u0432 Curve:<\/p>\n<ul>\n<li>\n<p><strong>Plain pool<\/strong>. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0443\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0434\u0432\u0430 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0438\u0432\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Lending pool<\/strong>. \u042d\u0442\u043e \u043f\u0443\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 LP \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043b\u0435\u043d\u0434\u0438\u043d\u0433 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>Metapool<\/strong>. \u042d\u0442\u043e \u043f\u0443\u043b, \u0433\u0434\u0435 \u0430\u043a\u0442\u0438\u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0441 LP \u0442\u043e\u043a\u0435\u043d\u043e\u043c\u00a0<strong>plain<\/strong>\u00a0\u043f\u0443\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430, \u043f\u0443\u043b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p><code>exchange()<\/code>\u00a0&#8212; \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0434\u0438\u043d \u0430\u043a\u0442\u0438\u0432 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439<\/p>\n<\/li>\n<li>\n<p><code>add_liquidity()<\/code>\u00a0&#8212; \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/li>\n<li>\n<p><code>remove_liquidity()<\/code>\u00a0&#8212; \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/li>\n<li>\n<p><code>remove_liquidity_imbalance()<\/code>\u00a0&#8212; \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e<\/p>\n<\/li>\n<li>\n<p><code>remove_liquidity_one_coin()<\/code>\u00a0&#8212; \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><code>_xp()<\/code>\u00a0&#8212; \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0431\u0430\u043b\u0430\u043d\u0441\u044b \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0443\u043b\u0430 \u043a \u0435\u0434\u0438\u043d\u043e\u043c\u0443 decimals. \u041f\u0435\u0440\u0435\u0434 \u043b\u044e\u0431\u044b\u043c\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0430\u043c\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u044b \u043b\u044e\u0431\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a decimals \u0440\u0430\u0432\u043d\u043e\u043c\u0443 18.<\/p>\n<\/li>\n<li>\n<p><code>get_D()<\/code>\u00a0&#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b. \u0414\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Newton%27s_method\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u0442\u043e\u0434 \u041d\u044c\u044e\u0442\u043e\u043d\u0430<\/a>, \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0438 \u0442\u0430\u043a\u0438\u0435 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 whitepaper.<\/p>\n<\/li>\n<li>\n<p><code>get_virtual_price()<\/code>\u00a0&#8212; \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c lp \u0442\u043e\u043a\u0435\u043d\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u043f\u0443\u043b\u0430<\/p>\n<\/li>\n<li>\n<p><code>calc_token_amount()<\/code>\u00a0&#8212; \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 totalSupply \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u043e\u043d\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043a\u0435\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u0438\u043d\u0447\u0435\u043d \u0438\u043b\u0438 \u0441\u043e\u0436\u0436\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u043f\u0440\u0438 \u043d\u0435\u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u0443\u043b\u0435.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041e\u0431\u0437\u043e\u0440 \u043a\u043e\u0434\u0430 \u043f\u0443\u043b\u0430<\/h4>\n<p>\u0423 Curve \u043c\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043f\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432. \u0412\u0441\u0435, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u0442\u0435\u0439\u0431\u043b\u043a\u043e\u0438\u043d\u0430\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\" rel=\"noopener noreferrer nofollow\">curve-contract<\/a>. \u041d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u0430\u043c\u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b \u0432 \u043f\u0430\u043f\u043e\u0447\u043a\u0435\u00a0<code>.\/contracts<\/code>.<\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0430\u043f\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><\/figure>\n<ul>\n<li>\n<p><strong>pool-templates<\/strong>. \u042d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0434\u043b\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043f\u0443\u043b\u043e\u0432. \u041d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0443\u043b.<\/p>\n<\/li>\n<li>\n<p><strong>pools<\/strong>. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0443\u043b\u043e\u0432. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0443\u043b\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>testings<\/strong>. \u041d\u0430\u0431\u043e\u0440 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u043e\u043a\u0438 \u0434\u043b\u044f \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>tokens<\/strong>. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 LP \u0442\u043e\u043a\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u0443\u043b\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u044c \u043f\u0430\u043f\u043a\u0438\u00a0<code>3Pool<\/code>\u00a0&#8212; \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0443\u043b\u043e\u0432. \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0443\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0442\u0440\u0435\u043c\u044f \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438: DAI, USDC, USDT.<\/p>\n<figure class=\"\"><\/figure>\n<ul>\n<li>\n<p><strong>Readme.md<\/strong>. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0443\u043b\u0430, \u0430\u0434\u0440\u0435\u0441\u0430 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>StableSwap3Pool<\/strong>. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u0443\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>pooldata.json<\/strong>. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f \u043f\u0443\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u0434\u0435\u043f\u043b\u043e\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Deposit.vy<\/strong>. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u043d\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u043f\u0443\u043b\u0430. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u0442\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 \u043f\u0443\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0443\u043b, \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 \u043f\u0443\u043b\u0430. \u041c\u044b \u0436\u0435 \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c \u0438 \u0431\u0443\u0434\u0435\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0443\u043b\u0430 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439.<\/p>\n<p>\u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u044c \u043f\u0430\u043f\u043a\u0438\u00a0<code>pool-templates<\/code>:<\/p>\n<figure class=\"\"><\/figure>\n<ul>\n<li>\n<p><strong>a<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u043b\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e lp \u0442\u043e\u043a\u0435\u043d\u044b lending \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u041f\u043e \u0442\u0438\u043f\u0443 aTokens \u0434\u043b\u044f Aave.<\/p>\n<\/li>\n<li>\n<p><strong>base<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u0443\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>eth<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0443\u043b\u0430, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e ETH.<\/p>\n<\/li>\n<li>\n<p><strong>meta<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u043c\u0435\u0442\u0430\u043f\u0443\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 LP \u0442\u043e\u043a\u0435\u043d\u044b \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0443\u043b\u043e\u0432 Curve.<\/p>\n<\/li>\n<li>\n<p><strong>y<\/strong>. \u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u043b\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e lp \u0442\u043e\u043a\u0435\u043d\u044b lending \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u041f\u043e \u0442\u0438\u043f\u0443 yearn.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d<\/strong><\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u0443\u043b\u0430\u00a0<a href=\"https:\/\/github.com\/curvefi\/curve-contract\/blob\/master\/contracts\/pool-templates\/base\/SwapTemplateBase.vy\" rel=\"noopener noreferrer nofollow\">SwapTemplateBase.vy<\/a>.<\/p>\n<p>\u041b\u044e\u0431\u043e\u0439 \u043f\u0443\u043b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">N_COINS: constant(int128) = ___N_COINS___ \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043e\u0432 \u0432 \u043f\u0443\u043b\u0435 PRECISION_MUL: constant(uint256[N_COINS]) = ___PRECISION_MUL___ \/\/ \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0430\u043a\u0442\u0438\u0432\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u0430\u043a\u0442\u0438\u0432\u044b \u043a \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 RATES: constant(uint256[N_COINS]) = ___RATES___ \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u043d\u044b\u0439<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-459641","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/459641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=459641"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/459641\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=459641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=459641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=459641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}