{"id":495786,"date":"2026-09-23T14:15:35","date_gmt":"2026-09-23T14:15:35","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=495786"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=495786","title":{"rendered":"\u0412\u0435\u0431\u2011\u043a\u043e\u0448\u0435\u043b\u0451\u043a Monero \u043d\u0430\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c monero\u2011wallet\u2011rpc: digest\u2011\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u0434\u0432\u0443\u0445\u0444\u0430\u0437\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0438 BigInt \u0432\u043c\u0435\u0441\u0442\u043e float"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041a\u0430\u043a\u2011\u0442\u043e \u044f \u0437\u0430\u0445\u043e\u0442\u0435\u043b \u043a\u043e\u0448\u0435\u043b\u0451\u043a Monero \u0441\u00a0\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0435\u0431\u2011\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043d\u043e\u00a0\u0431\u0435\u0437\u00a0\u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u043e\u0432 \u043f\u043e\u00a0\u043a\u043b\u044e\u0447\u0430\u043c: \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u00a0\u043c\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435, \u0445\u043e\u0434\u0438\u043b \u0432\u00a0\u043c\u043e\u0439 \u0443\u0437\u0435\u043b \u0438 \u043d\u0435\u00a0\u043f\u0440\u0438\u0442\u0432\u043e\u0440\u044f\u043b\u0441\u044f \u043a\u0430\u0441\u0442\u043e\u0434\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c. \u041f\u0438\u0441\u0430\u0442\u044c \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u0441\u0430\u043c\u043e\u043c\u0443\u00a0\u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u00a0\u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0437\u0430\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c <code>monero-wallet-rpc<\/code>, \u0430\u00a0\u043d\u0430\u00a0\u043c\u043d\u0435\u00a0\u0431\u044b\u043b\u0430 \u00ab\u0432\u0441\u0435\u0433\u043e\u00a0\u043b\u0438\u0448\u044c\u00bb \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430: \u0431\u044d\u043a\u0435\u043d\u0434, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u043a\u0443\u0447\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0441\u0430\u043c\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>\u0412\u00a0\u0441\u0442\u0430\u0442\u044c\u0435\u00a0\u2014 \u0432\u043e\u0441\u0435\u043c\u044c \u0433\u0440\u0430\u0431\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u043f\u043e\u00a0\u0434\u043e\u0440\u043e\u0433\u0435: \u043e\u0442\u00a0HTTP Digest, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442\u00a0TCP\u2011\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0434\u043e <code>JSON.stringify<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u043b\u0447\u0430 \u043b\u043e\u043c\u0430\u0435\u0442 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u043d\u0435\u0436\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b. \u042d\u0442\u043e \u043d\u0435\u00a0\u0440\u0435\u043a\u043b\u0430\u043c\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0430\u00a0\u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043d\u0430\u0445\u043e\u0434\u043e\u043a; \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442, \u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u00a0\u043a\u043e\u043d\u0446\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c: \u0441\u043e\u0444\u0442 \u043d\u0435\u0430\u0443\u0434\u0438\u0442\u043d\u0443\u0442\u044b\u0439, \u044d\u0442\u043e \u0445\u043e\u0431\u0431\u0438\u2011\u043f\u0440\u043e\u0435\u043a\u0442, \u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043a\u00a0\u043d\u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<h3>\u0417\u0430\u0434\u0430\u0447\u0430 \u0438 \u0440\u0430\u043c\u043a\u0438<\/h3>\n<p>\u0427\u0442\u043e\u00a0\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u043e\u0448\u0435\u043b\u0451\u043a Monero \u0441\u00a0\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0442\u0451\u043c\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 <code>127.0.0.1<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043b\u044e\u0447\u0438 \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u00a0\u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 Monero, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0430\u043c\u043e\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435\u00a0\u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e RPC\u2011\u043f\u0430\u0440\u043e\u043b\u044f \u0438 \u0443\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0441 <code>monero-wallet-rpc<\/code> \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0431\u044f\u0437\u0430\u043d \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0442\u043e\u0447\u043d\u0443\u044e \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u0443\u0437\u0435\u043b \u0438\u043b\u0438\u00a0RPC \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0447\u0435\u0441\u0442\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0430\u00a0\u043d\u0435\u00a0\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0443\u043c\u0430\u043d\u043d\u044b\u0439 \u0431\u0430\u043b\u0430\u043d\u0441.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0442\u0435\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u043a\u0443\u0447\u043d\u044b\u043c \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c: Node.js + Express + TypeScript \u043d\u0430\u00a0\u0431\u044d\u043a\u0435\u043d\u0434\u0435, React + Vite + Tailwind \u043d\u0430\u00a0\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435. \u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0432\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435: 2307\u00a0\u0441\u0442\u0440\u043e\u043a \u0431\u044d\u043a\u0435\u043d\u0434\u0430 (\u0431\u0435\u0437 \u0442\u0435\u0441\u0442\u043e\u0432), 3057\u00a0\u0441\u0442\u0440\u043e\u043a \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0438 377\u00a0\u0441\u0442\u0440\u043e\u043a \u0442\u0435\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043f\u043e\u0437\u0436\u0435\u00a0\u2014 \u0438 \u043d\u0435\u00a0\u0437\u0440\u044f.<\/p>\n<h3>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430: \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435\u00a0\u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0441\u00a0RPC \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e<\/h3>\n<pre><code>\u0431\u0440\u0430\u0443\u0437\u0435\u0440 (React)  \u2192  \u0431\u044d\u043a\u0435\u043d\u0434 127.0.0.1:18082  \u2192  monero-wallet-rpc 127.0.0.1:18083  \u2192  monerod \/ \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0443\u0437\u0435\u043b     \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0435\u0439           \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0435\u0439 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435            \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a           \u043f\u043e\u043b\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0431\u043b\u0430\u0437\u043d \u0432\u044b\u0437\u0432\u0430\u0442\u044c <code>monero-wallet-rpc<\/code> \u043f\u0440\u044f\u043c\u043e \u0438\u0437\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e\u00a0\u043e\u043d \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u00a0\u0442\u0440\u0438 \u0432\u0435\u0449\u0438: CORS, RPC\u2011\u043f\u0430\u0440\u043e\u043b\u044c \u0432\u00a0JS \u0438 \u0442\u043e, \u0447\u0442\u043e\u00a0\u043b\u044e\u0431\u043e\u0439 \u0441\u0430\u0439\u0442 \u0432\u00a0\u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u0442\u043e\u0436\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u0447\u0442\u043e\u2011\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u044b\u0437\u0432\u0430\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044d\u043a\u0435\u043d\u0434\u00a0\u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439, \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442 RPC\u2011\u043b\u043e\u0433\u0438\u043d, \u0430\u00a0\u0441\u0430\u043c RPC \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <code>127.0.0.1<\/code> \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 digest\u2011\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e.<\/p>\n<h3>\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a01. Digest\u2011\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u043a\u00a0TCP\u2011\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e<\/h3>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e\u00a0\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e\u00bb: <code>fetch<\/code> \u0441\u00a0Basic\u2011\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 401. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438\u00a0\u2014 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u0434\u0430\u0451\u0442 digest:<\/p>\n<pre><code>WWW-authenticate: Digest qop=\"auth\",algorithm=MD5,realm=\"monero-rpc\",nonce=\"...\",stale=falseWWW-authenticate: Digest qop=\"auth\",algorithm=MD5-sess,realm=\"monero-rpc\",nonce=\"...\",stale=false<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0434\u0432\u0430, Node \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e, \u0430\u00a0\u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439\u00a0\u2014 \u0438\u043d\u0430\u0447\u0435 \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u0442 <code>algorithm=MD5-sess<\/code> \u0438 \u043e\u0442\u0432\u0435\u0442 \u043d\u0435\u00a0\u0441\u043e\u0439\u0434\u0451\u0442\u0441\u044f.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435. <code>fetch<\/code>\/undici \u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0443\u043b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u0430\u00a0nonce \u0432\u00a0epee (HTTP\u2011\u0441\u043b\u043e\u0439 Monero) \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d \u043a\u00a0\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0432\u044b\u0434\u0430\u043d. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u044d\u0444\u0444\u0435\u043a\u0442: \u0441\u00a0\u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c\u00a0\u0436\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0443\u0445\u043e\u0434\u044f\u0442 \u0442\u043e 200, \u0442\u043e 401\u00a0\u2014 \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0442\u043e\u0433\u043e, \u043f\u043e\u043f\u0430\u043b\u00a0\u043b\u0438 retry \u0432\u00a0\u0442\u043e\u0442\u00a0\u0436\u0435 \u0441\u043e\u043a\u0435\u0442. \u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u00ab\u0438\u043d\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00bb, \u0447\u0442\u043e\u00a0\u0445\u0443\u0436\u0435, \u0447\u0435\u043c \u00ab\u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c\u00bb.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435\u00a0\u2014 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 <code>fetch<\/code> \u0432\u00a0\u043f\u043e\u043b\u044c\u0437\u0443 <code>node:http<\/code> \u0438 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043e\u0434\u043d\u043e keep\u2011alive \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"typescript\">private readonly agent = new http.Agent({ keepAlive: true, maxSockets: 1 });<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a, \u043a\u0430\u043a\u00a0\u0436\u0434\u0451\u0442 \u0441\u0435\u0440\u0432\u0435\u0440: \u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u043b\u0435\u0439 \u0438 <strong>\u0431\u0435\u0437<\/strong> \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <code>algorithm<\/code> (\u0441 \u043d\u0438\u043c epee \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 401\u00a0\u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u00a0\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0440\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435).<\/p>\n<pre><code class=\"typescript\">const parts = [  `username=\"${user}\"`,  `realm=\"${challenge.realm}\"`,  `nonce=\"${challenge.nonce}\"`,  `uri=\"${uri}\"`,];if (challenge.qop) parts.push(`qop=${challenge.qop}`, `nc=${nc}`, `cnonce=\"${cnonce}\"`);parts.push(`response=\"${response}\"`);return `Digest ${parts.join(', ')}`;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041c\u043e\u0440\u0430\u043b\u044c: \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439\u00bb HTTP\u2011\u043a\u043b\u0438\u0435\u043d\u0442, \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0447\u0430\u0441\u0430 \u043d\u0430\u00a0\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442\u2011\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442 (<code>node scripts\/doctor.mjs<\/code> \u0432\u00a0\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 challenge, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438 \u043a\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430. \u041e\u043d \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0447\u0430\u0441\u044b.<\/p>\n<h3>\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a02. \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0446\u0435\u043d\u0430, \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u044c<\/h3>\n<p>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u00ab\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u0443\u044e \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u0434\u043e\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438\u00bb \u0432\u00a0\u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043e\u0446\u0435\u043d\u043a\u043e\u0439, \u0430\u00a0\u043e\u0446\u0435\u043d\u043a\u0430 \u0432\u0440\u0451\u0442. \u0423 <code>monero-wallet-rpc<\/code> \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u043d\u043e\u00a0\u043d\u0435\u00a0\u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0442\u044c \u0435\u0451.<\/p>\n<pre><code>transfer { do_not_relay: true, get_tx_key: true }  \u2192  \u0442\u043e\u0447\u043d\u0430\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f + tx_metadatarelay_tx { hex: tx_metadata }                      \u2192  \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>tx_metadata<\/code> \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430\u00a0\u0431\u044d\u043a\u0435\u043d\u0434\u0435, \u0432\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0443\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u043c\u043c\u0430, \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u0438 \u0438\u0442\u043e\u0433. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u0438\u0430\u043b\u043e\u0433\u00a0\u2014 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0432\u00a0\u0441\u0435\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u0443\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0441\u0430\u0434\u0430\u00a0\u2014 \u043a\u0430\u043a\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443. \u0412\u00a0RPC \u043e\u043d\u0430 \u0432\u00a0\u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445 \u0438 \u044d\u0442\u043e <code>uint64<\/code>: \u0434\u043e 18\u202f446\u202f744\u202f073\u202f709\u202f551\u202f615. \u042d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c <code>Number.MAX_SAFE_INTEGER<\/code> (9 007\u202f199\u202f254\u202f740\u202f991), \u0442\u043e \u0435\u0441\u0442\u044c <code>JSON.stringify<\/code> \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f <code>transfer<\/code> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0431\u0435\u0437\u00a0\u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e <code>Number<\/code>:<\/p>\n<pre><code class=\"typescript\">const body =  `{\"jsonrpc\":\"2.0\",\"id\":\"0\",\"method\":\"transfer\",\"params\":{` +  `\"destinations\":[{\"amount\":${params.amountAtomic},\"address\":${JSON.stringify(params.address)}}],` +  `\"account_index\":${params.accountIndex},\"priority\":${params.priority},` +  `\"get_tx_key\":true,\"do_not_relay\":${params.doNotRelay}}}`;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>amountAtomic<\/code>\u00a0\u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437\u00a0\u0446\u0438\u0444\u0440, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438\u0437 <code>BigInt<\/code>. \u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e <code>parseFloat<\/code> \u043d\u0430\u00a0\u043f\u0443\u0442\u0438 \u043e\u0442\u00a0\u043f\u043e\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0434\u043e\u00a0\u0441\u0435\u0442\u0438.<\/p>\n<h3>\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a03. \u041d\u043e\u0432\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0448\u0438\u043b \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u0447\u0435\u0439\u043d<\/h3>\n<p>\u0421\u0430\u043c\u044b\u0439 \u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u043f\u043e\u00a0\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0430\u0433 \u043d\u0430\u0448\u0451\u043b\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e. \u0421\u043e\u0437\u0434\u0430\u044e \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a, \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00ab\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e, 100%\u00bb. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e <code>monero-wallet-rpc<\/code>\u00a0\u2014 \u0438 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043a\u0430\u0447\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 <strong>\u0441\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430<\/strong>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0\u0443\u00a0\u043d\u0435\u0433\u043e <code>restore_height = 0<\/code>. \u0421\u00a0\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u044d\u0442\u043e \u0441\u043e\u0442\u043d\u0438 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u0438 \u0447\u0430\u0441\u044b \u0440\u0430\u0431\u043e\u0442\u044b, \u0430\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u00ab\u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0437\u0430\u0432\u0438\u0441 \u043d\u0430 0.00%\u00bb.<\/p>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430: <code>create_wallet<\/code> \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u0431\u0435\u0437\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <code>restore_height<\/code>. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u00a0\u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u0438\u00a0\u2014 \u0432\u0437\u044f\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u044b\u0441\u043e\u0442\u0443 \u0434\u0435\u043c\u043e\u043d\u0430 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0451 \u043f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438:<\/p>\n<pre><code class=\"typescript\">let restoreHeight: number | undefined;const daemon = await getDaemonStatus();if (daemon.online &amp;&amp; daemon.height) restoreHeight = daemon.height;await this.rpc.createWallet(name, password, 'English', restoreHeight);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u00ab\u0441 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0433\u043e \u0434\u043d\u044f\u00bb \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0430\u00a0\u043d\u0435\u00a0\u0437\u0430\u00a0\u0441\u0443\u0442\u043a\u0438.<\/p>\n<h3>\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a04. \u041c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043d\u0435\u00a0\u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/h3>\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043f\u043e\u2011\u0440\u0430\u0437\u043d\u043e\u043c\u0443: \u043e\u0442 200\u00a0\u043c\u0441 \u0434\u043e 8\u00a0\u0441\u0435\u043a\u0443\u043d\u0434. \u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0447\u0435\u0441\u0442\u043d\u043e \u0436\u0434\u0430\u043b\u0430 \u0441\u0442\u0430\u0442\u0443\u0441 \u0443\u0437\u043b\u0430 \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0447\u0435\u0440\u0435\u0437 10\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u00a0\u2014 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a\u00a0\u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>\u0427\u0442\u043e\u00a0\u043f\u043e\u043c\u043e\u0433\u043b\u043e:<\/p>\n<ul>\n<li>\n<p><code><strong>get_info<\/strong><\/code><strong> \u0443 <\/strong><code><strong>monero-wallet-rpc<\/strong><\/code><strong> \u043d\u0435\u0442<\/strong> (\u0432 \u0432\u0435\u0440\u0441\u0438\u0438 0.18.5.1\u00a0\u043c\u0435\u0442\u043e\u0434 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0441\u043e\u0442\u0430 \u0441\u0435\u0442\u0438 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0443\u00a0\u0434\u0435\u043c\u043e\u043d\u0430\u00a0\u2014 \u0438 \u0442\u043e, \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e, \u0430\u00a0\u043d\u0435\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0430\u0442\u0443\u0441 \u0443\u0437\u043b\u0430 \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u00a0\u0441\u0445\u0435\u043c\u0435 stale\u2011while\u2011revalidate: \u043a\u044d\u0448 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0\u0444\u043e\u043d;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f\u00a0\u0446\u0435\u043d\u044b\u00a0\u2014 \u0442\u043e\u0442\u00a0\u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"typescript\">snapshot(): PriceQuote {  if (this.source === 'none') return this.pending();  const cached = this.cache;  const stale = !cached || !cached.updatedAt || Date.now() - cached.updatedAt &gt;= CACHE_MS;  if (stale) void this.quote().catch(() =&gt; undefined);  return cached ?? this.pending();}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ul>\n<li>\n<p>\u0447\u0442\u0435\u043d\u0438\u044f (<code>balance<\/code>, <code>address<\/code>, <code>transactions<\/code>) \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 3\u20135\u00a0\u0441\u0435\u043a\u0443\u043d\u0434, \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0442\u0441\u044f: wallet RPC \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438 \u043f\u0430\u0440\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u043b\u0435\u0433\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442 \u0432\u0441\u0451.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 <code>\/api\/wallet\/info<\/code>\u00a0\u2014 \u043e\u043a\u043e\u043b\u043e 60\u00a0\u043c\u0441, \u0430\u00a0\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u043f\u0440\u043e\u0441\u0435.<\/p>\n<h3>\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a05. \u0414\u0435\u043d\u044c\u0433\u0438 \u0438 float: \u0437\u0430\u043f\u044f\u0442\u0430\u044f \u0438 \u00ab\u043f\u044b\u043b\u044c\u00bb<\/h3>\n<p>\u0422\u0435\u0441\u0442\u044b \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u0437\u0434\u043d\u043e, \u0438 \u043e\u043d\u0438 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0448\u043b\u0438 \u0434\u0432\u0430 \u0431\u0430\u0433\u0430 \u0432\u00a0\u0434\u0435\u043d\u0435\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435.<\/p>\n<p><strong>\u041f\u0435\u0440\u0432\u044b\u0439.<\/strong> \u041f\u0430\u0440\u0441\u0435\u0440 \u0441\u0443\u043c\u043c \u0432\u044b\u0440\u0435\u0437\u0430\u043b \u0437\u0430\u043f\u044f\u0442\u044b\u0435 \u00ab\u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 \u0442\u044b\u0441\u044f\u0447\u00bb. \u041d\u0430\u00a0\u0432\u0445\u043e\u0434\u0435 <code>\"1,5\"<\/code> (\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0438\u043c\u0435\u043b \u0432\u00a0\u0432\u0438\u0434\u0443 1,5\u00a0XMR) \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c \u00ab15\u00bb\u00a0\u2014 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u00a0\u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437, \u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0435\u0451 \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u044f\u0442\u0430\u044f \u0431\u0435\u0437\u00a0\u0442\u043e\u0447\u043a\u0438\u00a0\u2014 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u0430\u00a0\u0441\u00a0\u0442\u043e\u0447\u043a\u043e\u0439\u00a0\u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0442\u044b\u0441\u044f\u0447:<\/p>\n<pre><code class=\"typescript\">if (raw.includes(',')) {  raw = raw.includes('.') ? raw.replace(\/,\/g, '') : raw.replace(',', '.');}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u0412\u0442\u043e\u0440\u043e\u0439.<\/strong> \u0424\u043e\u0440\u043c\u0430\u0442\u0442\u0435\u0440 \u00ab\u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0448\u0435\u0441\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u0432\u00bb \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u044b\u043b\u044c \u043a\u0430\u043a <code>0.000000<\/code>: \u0441\u0443\u043c\u043c\u0430 0,000000000001\u00a0XMR \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u0447\u0435\u0437\u0430\u043b\u0430. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a\u043e\u0432, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u00a0\u043f\u0440\u043e\u043f\u0430\u043b\u043e.<\/p>\n<p>\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u0432\u0435\u0437\u0434\u0435 \u043d\u0430 <code>BigInt<\/code> \u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f fiat\u2011\u043e\u0446\u0435\u043d\u043a\u0443:<\/p>\n<pre><code class=\"typescript\">const numerator = atomicValue * priceScaled * 100n;const denominator = 1_000_000_000_000n * scale;const cents = (numerator + denominator \/ 2n) \/ denominator;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0443\u0440\u0441 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0443\u00a0\u0431\u0438\u0440\u0436\u0438 (Kraken XMR\/USDT, CoinGecko XMR\/USD) \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0435\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u043b, \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u00a0\u043c\u0438\u043d\u0443\u0442\u0443, \u0438 \u043f\u0440\u0438\u00a0\u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 API \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0443\u0441\u0442\u043e\u0435\u00a0\u2014 \u00ab\u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0443\u0440\u0441\u00bb \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u0435\u0431\u0435 \u043d\u0435\u00a0\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442.<\/p>\n<h3>\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a06. \u0416\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0441\u0435\u0441\u0441\u0438\u0438 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430<\/h3>\n<p><code>monero-wallet-rpc<\/code> \u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0434\u0438\u043d \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043b. \u0418\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0432\u0435\u0449\u0438:<\/p>\n<ul>\n<li>\n<p>\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u0442\u00a0\u0436\u0435 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u043d\u0435\u043b\u044c\u0437\u044f\u00a0\u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u00abis opened by another wallet program\u00bb;<\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c seed, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c <code>close_wallet<\/code> \u2192 <code>open_wallet(password)<\/code> \u2192 <code>query_key(mnemonic)<\/code>; \u043f\u0440\u0438\u00a0\u043d\u0435\u0432\u0435\u0440\u043d\u043e\u043c \u043f\u0430\u0440\u043e\u043b\u0435 \u0441\u0435\u0441\u0441\u0438\u044f \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439, \u0430\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u00a0\u044d\u043a\u0440\u0430\u043d \u0432\u044b\u0431\u043e\u0440\u0430 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u044d\u043a\u0435\u043d\u0434\u0430 \u0443\u043f\u0430\u043b \u0438\u043b\u0438\u00a0\u0431\u044b\u043b \u0443\u0431\u0438\u0442, \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u00ab\u0437\u0430\u043d\u044f\u0442\u044b\u043c\u00bb. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u00a0\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0431\u044d\u043a\u0435\u043d\u0434 \u0441\u0430\u043c \u0434\u0435\u043b\u0430\u0435\u0442 <code>close_wallet<\/code>, \u0438\u043d\u0430\u0447\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u0442\u00a0\u0436\u0435 \u0444\u0430\u0439\u043b.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043d\u044e\u0430\u043d\u0441: \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f <code>open\/close<\/code> RPC \u0447\u0435\u0441\u0442\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u00ab\u043a\u043e\u0448\u0435\u043b\u0451\u043a \u043d\u0435\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u00bb, \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u0440\u043e\u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b \u044d\u0442\u043e \u043a\u0430\u043a \u00ab\u0441\u0435\u0441\u0441\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u0430\u00bb \u0438 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u00a0\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u044d\u043a\u0440\u0430\u043d. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u0432\u0435\u0441\u0442\u0438 \u00ab\u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439\u00bb \u0440\u0435\u0436\u0438\u043c: \u043f\u043e\u043a\u0430 \u0438\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u043d\u0435\u00a0\u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<h3>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/h3>\n<p>\u041a\u043e\u0448\u0435\u043b\u0451\u043a\u00a0\u2014 \u044d\u0442\u043e \u0447\u0443\u0436\u0438\u0435 \u0434\u0435\u043d\u044c\u0433\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u043d\u0435 \u00ab\u043f\u043e\u0442\u043e\u043c\u00bb, \u0430\u00a0\u0441\u0440\u0430\u0437\u0443:<\/p>\n<ul>\n<li>\n<p><code>monero-wallet-rpc<\/code> \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <code>127.0.0.1<\/code>, digest\u2011\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430, <code>--disable-rpc-login<\/code> \u043d\u0435\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0438\u0433\u0434\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c RPC \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u0438\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435: \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0447\u0442\u043e\u2011\u0442\u043e \u0443\u0442\u0435\u0447\u0451\u0442 \u0438\u0437\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0440\u0442\u0432\u043e;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0430\u0440\u043e\u043b\u044c \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430 \u043d\u0435\u00a0\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043d\u0438 \u0432 <code>localStorage<\/code>, \u043d\u0438 \u0432\u00a0\u043b\u043e\u0433\u0438, \u043d\u0438 \u0432\u00a0\u0444\u0430\u0439\u043b\u044b\u00a0\u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430\u00a0\u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0437\u043e\u0432\u0430;<\/p>\n<\/li>\n<li>\n<p>seed \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0\u043b\u0438\u0448\u044c \u043f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430 \u0438\u043b\u0438\u00a0\u043f\u0440\u0438\u00a0\u044f\u0432\u043d\u043e\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u0441\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044f, \u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u00a0\u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u00a0\u043b\u043e\u0433;<\/p>\n<\/li>\n<li>\n<p>\u0431\u044d\u043a\u0435\u043d\u0434 \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441\u00a0\u043d\u0435\u2011loopback <code>Host<\/code>\/<code>Origin<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u00ab\u0437\u043b\u043e\u0439 \u0441\u0430\u0439\u0442 \u0432\u00a0\u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435\u00bb \u0438 \u043e\u0442\u00a0DNS\u2011rebinding;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0443\u043c\u043c\u044b \u0438 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438\u00a0\u2014 \u0442\u043e\u043b\u044c\u043a\u043e <code>BigInt<\/code> \u0438 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043d\u0430\u00a0\u0436\u0438\u0432\u043e\u0439<\/h3>\n<p>\u0417\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u0435\u0431\u0435 \u043d\u0435\u00a0\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><strong>53\u00a0\u0442\u0435\u0441\u0442\u0430<\/strong> \u043d\u0430\u00a0\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c \u0440\u0430\u043d\u043d\u0435\u0440\u0435 Node (<code>node --test<\/code>)\u00a0\u2014 \u0431\u0435\u0437\u00a0\u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439: \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 XMR, \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f <code>get_transfers<\/code>, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043e\u0448\u0438\u0431\u043e\u043a RPC, digest\u2011\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p><strong>CI<\/strong> (GitHub Actions): \u0441\u0431\u043e\u0440\u043a\u0430 \u0431\u044d\u043a\u0435\u043d\u0434\u0430 \u2192 \u0442\u0435\u0441\u0442\u044b \u2192 \u0441\u0431\u043e\u0440\u043a\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u2192 <code>npm audit<\/code> \u0434\u043b\u044f\u00a0\u0434\u0432\u0443\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><strong>Dependabot<\/strong> \u0441\u00a0\u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c: \u043c\u0438\u043d\u043e\u0440\u043d\u044b\u0435 \u0438 \u043f\u0430\u0442\u0447\u2011\u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043e\u0434\u043d\u043e\u0439 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u0447\u043a\u043e\u0439 \u0440\u0430\u0437 \u0432\u00a0\u043d\u0435\u0434\u0435\u043b\u044e, \u043c\u0430\u0436\u043e\u0440\u044b\u00a0\u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u041f\u0435\u0440\u0432\u044b\u0439\u00a0\u0436\u0435 \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u043e\u0442\u043a\u0440\u044b\u043b 11\u00a0PR \u0441\u00a0\u043c\u0430\u0436\u043e\u0440\u043d\u044b\u043c\u0438 \u0430\u043f\u0433\u0440\u0435\u0439\u0434\u0430\u043c\u0438 (Tailwind 3\u21924, plugin\u2011react 4\u21926, TypeScript 5\u21927), \u0447\u0430\u0441\u0442\u044c \u0438\u0437\u00a0\u043d\u0438\u0445 \u043b\u043e\u043c\u0430\u043b\u0430 \u0441\u0431\u043e\u0440\u043a\u0443\u00a0\u2014 \u0434\u043b\u044f\u00a0\u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430 \u044d\u0442\u043e \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e;<\/p>\n<\/li>\n<li>\n<p><strong>\u0437\u0430\u0449\u0438\u0442\u0430 \u0432\u0435\u0442\u043a\u0438 <\/strong><code><strong>main<\/strong><\/code>: \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u043a <code>build<\/code>, \u0437\u0430\u043f\u0440\u0435\u0442 force\u2011push \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p><strong>\u043b\u0430\u0443\u043d\u0447\u0435\u0440\u044b<\/strong> \u0434\u043b\u044f\u00a0Windows (<code>Start.bat<\/code>\/<code>Stop.bat<\/code>) \u0438 \u0434\u043b\u044f\u00a0Linux\/macOS (<code>start.sh<\/code>\/<code>stop.sh<\/code>): \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 RPC\u2011\u043b\u043e\u0433\u0438\u043d, loopback\u2011\u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430, \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, PID\u2011\u0444\u0430\u0439\u043b\u044b. \u0421\u043a\u0440\u0438\u043f\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <code>bash<\/code> \u0438 <code>node<\/code>\u00a0\u2014 \u043d\u0438 <code>lsof<\/code>, \u043d\u0438 <code>ss<\/code>, \u043d\u0438 <code>curl<\/code> \u043d\u0435\u00a0\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0435\u043b\u043e\u0447\u044c: Windows Defender \u0438 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438<\/h3>\n<p>\u0412\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0442\u0435\u0441\u0442\u043e\u0432 Defender \u0443\u0434\u0430\u043b\u0438\u043b <code>monero-wallet-rpc.exe<\/code>\u00a0\u2014 \u043f\u0440\u044f\u043c\u043e \u0438\u0437\u00a0\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438, \u0441\u00a0\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043f\u0440\u043e\u00a0\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u041f\u041e. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 Monero \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u0434\u00a0\u0442\u0430\u043a\u0438\u0435 \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u043a\u0438: \u0432\u043d\u0443\u0442\u0440\u0438 \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0435 \u0434\u043b\u044f\u00a0\u043c\u0430\u0439\u043d\u0435\u0440\u043e\u0432. \u041b\u0435\u0447\u0438\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u043f\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u00ab\u0417\u0430\u0449\u0438\u0442\u0435 \u043e\u0442\u00a0\u0432\u0438\u0440\u0443\u0441\u043e\u0432 \u0438 \u0443\u0433\u0440\u043e\u0437\u00bb; \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438 \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e\u00a0\u044d\u0442\u043e \u043b\u043e\u0436\u043d\u043e\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435, \u0438 \u043d\u0435\u00a0\u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0432\u00a0\u0441\u0432\u043e\u0451\u043c \u043a\u043e\u0434\u0435.<\/p>\n<h3>\u0427\u0442\u043e\u00a0\u043d\u0435\u00a0\u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0438 \u0447\u0442\u043e\u00a0\u0434\u0430\u043b\u044c\u0448\u0435<\/h3>\n<p>\u0427\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u043e\u0435\u043a\u0442 <strong>\u043d\u0435\u00a0\u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b \u0430\u0443\u0434\u0438\u0442<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043a\u00a0\u043d\u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0432\u0443\u0445\u0444\u0430\u0437\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0438 \u043f\u043e\u043a\u0440\u044b\u0442\u0430 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 (\u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0441\u0443\u043c\u043c, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a RPC), \u043d\u043e <strong>\u0436\u0438\u0432\u0443\u044e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0441\u00a0\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0435\u0439 \u044f \u0435\u0449\u0451 \u043d\u0435\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043e\u00a0\u043d\u0451\u043c \u044f \u0431\u0443\u0434\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u043e\u0432 (Ledger\/Trezor);<\/p>\n<\/li>\n<li>\n<p>\u0432\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445\u00a0\u2014 Docker\u2011\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0418\u0442\u043e\u0433\u0438<\/h3>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0446\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e\u00a0\u044f \u0432\u044b\u043d\u0435\u0441 \u0438\u0437\u00a0\u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438,\u00a0\u2014 \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u00ab\u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445\u00bb \u043c\u0435\u0441\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e RPC, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u00a0\u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445: \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 digest\u2011nonce \u043a\u00a0\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e, \u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u043b\u0435\u0439, <code>tx_metadata<\/code> \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0446\u0435\u043d\u043a\u0438 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438, <code>uint64<\/code> \u0438 <code>JSON.stringify<\/code>, <code>restore_height<\/code> \u043f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430 \u0438 \u00ab\u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439\u00bb \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u0444\u0430\u0439\u043b\u0443 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430. \u0412\u0441\u0451 \u044d\u0442\u043e\u00a0\u2014 \u043f\u0440\u043e\u00a0\u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c, \u0430\u00a0\u043d\u0435\u00a0\u043f\u0440\u043e\u00a0\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e: \u0441\u0430\u043c\u0443 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430\u043c Monero.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0432\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u043e\u0433\u0443 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c, \u043a\u0430\u043a\u00a0\u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0434\u0432\u0443\u0445\u0444\u0430\u0437\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u00a0\u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f UX \u0438 \u0447\u0442\u043e\u00a0\u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0436\u0438\u0432\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/p>\n<p><strong>\u0421\u0441\u044b\u043b\u043a\u0438:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438: <a href=\"https:\/\/github.com\/AMLChecker\/monero-web-wallet\" rel=\"noopener nofollow\">https:\/\/github.com\/AMLChecker\/monero\u2011web\u2011wallet<\/a><\/p>\n<\/li>\n<li>\n<p>\u041b\u0435\u043d\u0434\u0438\u043d\u0433 \u0441\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438: <a href=\"https:\/\/amlchecker.github.io\/monero-web-wallet\/\" rel=\"noopener nofollow\">https:\/\/amlchecker.github.io\/monero\u2011web\u2011wallet\/<\/a><\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043c\u0435\u0442\u043a\u0438 \u043f\u043e\u00a0\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443: <a href=\"https:\/\/github.com\/AMLChecker\/monero-web-wallet\/blob\/main\/docs\/ARCHITECTURE.md\" rel=\"noopener nofollow\">https:\/\/github.com\/AMLChecker\/monero\u2011web\u2011wallet\/blob\/main\/docs\/ARCHITECTURE.md<\/a><\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0435\u043b\u0438\u0437: <a href=\"https:\/\/github.com\/AMLChecker\/monero-web-wallet\/releases\" rel=\"noopener nofollow\">https:\/\/github.com\/AMLChecker\/monero\u2011web\u2011wallet\/releases<\/a><\/p>\n<\/li>\n<\/ul>\n<p><em>\u041f\u0440\u043e\u0435\u043a\u0442 \u043c\u043e\u0439,\u00a0\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f MIT, \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442. \u0415\u0449\u0451 \u0440\u0430\u0437: \u0441\u043e\u0444\u0442 \u043d\u0435\u0430\u0443\u0434\u0438\u0442\u043d\u0443\u0442\u044b\u0439\u00a0\u2014 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043d\u0430\u00a0\u043c\u0430\u043b\u044b\u0445 \u0441\u0443\u043c\u043c\u0430\u0445 \u0438 \u0434\u0435\u0440\u0436\u0438\u0442\u0435 \u043e\u0444\u043b\u0430\u0439\u043d\u2011\u043a\u043e\u043f\u0438\u044e seed\u2011\u0444\u0440\u0430\u0437\u044b.<\/em><\/p>\n<\/div>\n<p>\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\/1085792\/\">https:\/\/habr.com\/ru\/articles\/1085792\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041a\u0430\u043a\u2011\u0442\u043e \u044f \u0437\u0430\u0445\u043e\u0442\u0435\u043b \u043a\u043e\u0448\u0435\u043b\u0451\u043a Monero \u0441\u00a0\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0435\u0431\u2011\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043d\u043e\u00a0\u0431\u0435\u0437\u00a0\u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u043e\u0432 \u043f\u043e\u00a0\u043a\u043b\u044e\u0447\u0430\u043c: \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u00a0\u043c\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435, \u0445\u043e\u0434\u0438\u043b \u0432\u00a0\u043c\u043e\u0439 \u0443\u0437\u0435\u043b \u0438 \u043d\u0435\u00a0\u043f\u0440\u0438\u0442\u0432\u043e\u0440\u044f\u043b\u0441\u044f \u043a\u0430\u0441\u0442\u043e\u0434\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c. \u041f\u0438\u0441\u0430\u0442\u044c \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u0441\u0430\u043c\u043e\u043c\u0443\u00a0\u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u00a0\u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0437\u0430\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c monero-wallet-rpc, \u0430\u00a0\u043d\u0430\u00a0\u043c\u043d\u0435\u00a0\u0431\u044b\u043b\u0430 \u00ab\u0432\u0441\u0435\u0433\u043e\u00a0\u043b\u0438\u0448\u044c\u00bb \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430: \u0431\u044d\u043a\u0435\u043d\u0434, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u043a\u0443\u0447\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0441\u0430\u043c\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0437\u0430\u0434\u0430\u0447\u0438.\u0412\u00a0\u0441\u0442\u0430\u0442\u044c\u0435\u00a0\u2014 \u0432\u043e\u0441\u0435\u043c\u044c \u0433\u0440\u0430\u0431\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u043f\u043e\u00a0\u0434\u043e\u0440\u043e\u0433\u0435: \u043e\u0442\u00a0HTTP Digest, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442\u00a0TCP\u2011\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0434\u043e JSON.stringify, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u043b\u0447\u0430 \u043b\u043e\u043c\u0430\u0435\u0442 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u043d\u0435\u0436\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b. \u042d\u0442\u043e \u043d\u0435\u00a0\u0440\u0435\u043a\u043b\u0430\u043c\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0430\u00a0\u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043d\u0430\u0445\u043e\u0434\u043e\u043a; \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442, \u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u00a0\u043a\u043e\u043d\u0446\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c: \u0441\u043e\u0444\u0442 \u043d\u0435\u0430\u0443\u0434\u0438\u0442\u043d\u0443\u0442\u044b\u0439, \u044d\u0442\u043e \u0445\u043e\u0431\u0431\u0438\u2011\u043f\u0440\u043e\u0435\u043a\u0442, \u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043a\u00a0\u043d\u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.\u0417\u0430\u0434\u0430\u0447\u0430 \u0438 \u0440\u0430\u043c\u043a\u0438\u0427\u0442\u043e\u00a0\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c:\u043a\u043e\u0448\u0435\u043b\u0451\u043a Monero \u0441\u00a0\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0442\u0451\u043c\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 127.0.0.1;\u043a\u043b\u044e\u0447\u0438 \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u00a0\u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 Monero, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0430\u043c\u043e\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438;\u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435\u00a0\u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e RPC\u2011\u043f\u0430\u0440\u043e\u043b\u044f \u0438 \u0443\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0441 monero-wallet-rpc \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e;\u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0431\u044f\u0437\u0430\u043d \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0442\u043e\u0447\u043d\u0443\u044e \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e;\u0435\u0441\u043b\u0438 \u0443\u0437\u0435\u043b \u0438\u043b\u0438\u00a0RPC \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0447\u0435\u0441\u0442\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0430\u00a0\u043d\u0435\u00a0\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0443\u043c\u0430\u043d\u043d\u044b\u0439 \u0431\u0430\u043b\u0430\u043d\u0441.\u0421\u0442\u0435\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u043a\u0443\u0447\u043d\u044b\u043c \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c: Node.js + Express + TypeScript \u043d\u0430\u00a0\u0431\u044d\u043a\u0435\u043d\u0434\u0435, React + Vite + Tailwind \u043d\u0430\u00a0\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435. \u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0432\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435: 2307\u00a0\u0441\u0442\u0440\u043e\u043a \u0431\u044d\u043a\u0435\u043d\u0434\u0430 (\u0431\u0435\u0437 \u0442\u0435\u0441\u0442\u043e\u0432), 3057\u00a0\u0441\u0442\u0440\u043e\u043a \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0438 377\u00a0\u0441\u0442\u0440\u043e\u043a \u0442\u0435\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043f\u043e\u0437\u0436\u0435\u00a0\u2014 \u0438 \u043d\u0435\u00a0\u0437\u0440\u044f.\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430: \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435\u00a0\u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0441\u00a0RPC \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e\u0431\u0440\u0430\u0443\u0437\u0435\u0440 (React)  \u2192  \u0431\u044d\u043a\u0435\u043d\u0434 127.0.0.1:18082  \u2192  monero-wallet-rpc 127.0.0.1:18083  \u2192  monerod \/ \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0443\u0437\u0435\u043b     \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0435\u0439           \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0435\u0439 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435            \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a           \u043f\u043e\u043b\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f\u0421\u043e\u0431\u043b\u0430\u0437\u043d \u0432\u044b\u0437\u0432\u0430\u0442\u044c monero-wallet-rpc \u043f\u0440\u044f\u043c\u043e \u0438\u0437\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e\u00a0\u043e\u043d \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u00a0\u0442\u0440\u0438 \u0432\u0435\u0449\u0438: CORS, RPC\u2011\u043f\u0430\u0440\u043e\u043b\u044c \u0432\u00a0JS \u0438 \u0442\u043e, \u0447\u0442\u043e\u00a0\u043b\u044e\u0431\u043e\u0439 \u0441\u0430\u0439\u0442 \u0432\u00a0\u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u0442\u043e\u0436\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u0447\u0442\u043e\u2011\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u044b\u0437\u0432\u0430\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044d\u043a\u0435\u043d\u0434\u00a0\u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439, \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442 RPC\u2011\u043b\u043e\u0433\u0438\u043d, \u0430\u00a0\u0441\u0430\u043c RPC \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e 127.0.0.1 \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 digest\u2011\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e.\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a01. Digest\u2011\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u043a\u00a0TCP\u2011\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e\u00a0\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e\u00bb: fetch \u0441\u00a0Basic\u2011\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 401. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438\u00a0\u2014 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u0434\u0430\u0451\u0442 digest:WWW-authenticate: Digest qop=&#187;auth&#187;,algorithm=MD5,realm=&#187;monero-rpc&#187;,nonce=&#187;&#8230;&#187;,stale=falseWWW-authenticate: Digest qop=&#187;auth&#187;,algorithm=MD5-sess,realm=&#187;monero-rpc&#187;,nonce=&#187;&#8230;&#187;,stale=false\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0434\u0432\u0430, Node \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e, \u0430\u00a0\u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439\u00a0\u2014 \u0438\u043d\u0430\u0447\u0435 \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u0442 algorithm=MD5-sess \u0438 \u043e\u0442\u0432\u0435\u0442 \u043d\u0435\u00a0\u0441\u043e\u0439\u0434\u0451\u0442\u0441\u044f.\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435. fetch\/undici \u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0443\u043b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u0430\u00a0nonce \u0432\u00a0epee (HTTP\u2011\u0441\u043b\u043e\u0439 Monero) \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d \u043a\u00a0\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0432\u044b\u0434\u0430\u043d. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u044d\u0444\u0444\u0435\u043a\u0442: \u0441\u00a0\u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c\u00a0\u0436\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0443\u0445\u043e\u0434\u044f\u0442 \u0442\u043e 200, \u0442\u043e 401\u00a0\u2014 \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0442\u043e\u0433\u043e, \u043f\u043e\u043f\u0430\u043b\u00a0\u043b\u0438 retry \u0432\u00a0\u0442\u043e\u0442\u00a0\u0436\u0435 \u0441\u043e\u043a\u0435\u0442. \u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u00ab\u0438\u043d\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00bb, \u0447\u0442\u043e\u00a0\u0445\u0443\u0436\u0435, \u0447\u0435\u043c \u00ab\u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c\u00bb.\u0420\u0435\u0448\u0435\u043d\u0438\u0435\u00a0\u2014 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 fetch \u0432\u00a0\u043f\u043e\u043b\u044c\u0437\u0443 node:http \u0438 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043e\u0434\u043d\u043e keep\u2011alive \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435:private readonly agent = new http.Agent({ keepAlive: true, maxSockets: 1 });\u0418 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a, \u043a\u0430\u043a\u00a0\u0436\u0434\u0451\u0442 \u0441\u0435\u0440\u0432\u0435\u0440: \u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u043b\u0435\u0439 \u0438 \u0431\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 algorithm (\u0441 \u043d\u0438\u043c epee \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 401\u00a0\u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u00a0\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0440\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435).const parts = [  `username=&#187;${user}&#187;`,  `realm=&#187;${challenge.realm}&#187;`,  `nonce=&#187;${challenge.nonce}&#187;`,  `uri=&#187;${uri}&#187;`,];if (challenge.qop) parts.push(`qop=${challenge.qop}`, `nc=${nc}`, `cnonce=&#187;${cnonce}&#187;`);parts.push(`response=&#187;${response}&#187;`);return `Digest ${parts.join(&#8216;, &#8216;)}`;\u041c\u043e\u0440\u0430\u043b\u044c: \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439\u00bb HTTP\u2011\u043a\u043b\u0438\u0435\u043d\u0442, \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0447\u0430\u0441\u0430 \u043d\u0430\u00a0\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442\u2011\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442 (node scripts\/doctor.mjs \u0432\u00a0\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 challenge, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438 \u043a\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430. \u041e\u043d \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0447\u0430\u0441\u044b.\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a02. \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0446\u0435\u043d\u0430, \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u00ab\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u0443\u044e \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e \u0434\u043e\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438\u00bb \u0432\u00a0\u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043e\u0446\u0435\u043d\u043a\u043e\u0439, \u0430\u00a0\u043e\u0446\u0435\u043d\u043a\u0430 \u0432\u0440\u0451\u0442. \u0423 monero-wallet-rpc \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u043d\u043e\u00a0\u043d\u0435\u00a0\u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0442\u044c \u0435\u0451.transfer { do_not_relay: true, get_tx_key: true }  \u2192  \u0442\u043e\u0447\u043d\u0430\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f + tx_metadatarelay_tx { hex: tx_metadata }                      \u2192  \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044ftx_metadata \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430\u00a0\u0431\u044d\u043a\u0435\u043d\u0434\u0435, \u0432\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0443\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u043c\u043c\u0430, \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u0438 \u0438\u0442\u043e\u0433. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u0438\u0430\u043b\u043e\u0433\u00a0\u2014 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0432\u00a0\u0441\u0435\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u0443\u0445\u043e\u0434\u0438\u0442.\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0441\u0430\u0434\u0430\u00a0\u2014 \u043a\u0430\u043a\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443. \u0412\u00a0RPC \u043e\u043d\u0430 \u0432\u00a0\u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445 \u0438 \u044d\u0442\u043e uint64: \u0434\u043e 18\u202f446\u202f744\u202f073\u202f709\u202f551\u202f615. \u042d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c Number.MAX_SAFE_INTEGER (9 007\u202f199\u202f254\u202f740\u202f991), \u0442\u043e \u0435\u0441\u0442\u044c JSON.stringify \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f transfer \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0431\u0435\u0437\u00a0\u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e Number:const body =  `{&#171;jsonrpc&#187;:&#187;2.0&#8243;,&#187;id&#187;:&#187;0&#8243;,&#187;method&#187;:&#187;transfer&#187;,&#187;params&#187;:{` +  `&#187;destinations&#187;:[{&#171;amount&#187;:${params.amountAtomic},&#187;address&#187;:${JSON.stringify(params.address)}}],` +  `&#187;account_index&#187;:${params.accountIndex},&#187;priority&#187;:${params.priority},` +  `&#187;get_tx_key&#187;:true,&#187;do_not_relay&#187;:${params.doNotRelay}}}`;amountAtomic\u00a0\u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437\u00a0\u0446\u0438\u0444\u0440, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438\u0437 BigInt. \u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e parseFloat \u043d\u0430\u00a0\u043f\u0443\u0442\u0438 \u043e\u0442\u00a0\u043f\u043e\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0434\u043e\u00a0\u0441\u0435\u0442\u0438.\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a03. \u041d\u043e\u0432\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0448\u0438\u043b \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u0447\u0435\u0439\u043d\u0421\u0430\u043c\u044b\u0439 \u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u043f\u043e\u00a0\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0430\u0433 \u043d\u0430\u0448\u0451\u043b\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e. \u0421\u043e\u0437\u0434\u0430\u044e \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a, \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00ab\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e, 100%\u00bb. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e monero-wallet-rpc\u00a0\u2014 \u0438 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043a\u0430\u0447\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u0441\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0\u0443\u00a0\u043d\u0435\u0433\u043e restore_height = 0. \u0421\u00a0\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u044d\u0442\u043e \u0441\u043e\u0442\u043d\u0438 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u0438 \u0447\u0430\u0441\u044b \u0440\u0430\u0431\u043e\u0442\u044b, \u0430\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u00ab\u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0437\u0430\u0432\u0438\u0441 \u043d\u0430 0.00%\u00bb.\u041f\u0440\u0438\u0447\u0438\u043d\u0430: create_wallet \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u0431\u0435\u0437\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 restore_height. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u00a0\u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u0438\u00a0\u2014 \u0432\u0437\u044f\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u044b\u0441\u043e\u0442\u0443 \u0434\u0435\u043c\u043e\u043d\u0430 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0451 \u043f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438:let restoreHeight: number | undefined;const daemon = await getDaemonStatus();if (daemon.online &amp;&amp; daemon.height) restoreHeight = daemon.height;await this.rpc.createWallet(name, password, &#8216;English&#8217;, restoreHeight);\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u00ab\u0441 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0433\u043e \u0434\u043d\u044f\u00bb \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0430\u00a0\u043d\u0435\u00a0\u0437\u0430\u00a0\u0441\u0443\u0442\u043a\u0438.\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a04. \u041c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043d\u0435\u00a0\u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043f\u043e\u2011\u0440\u0430\u0437\u043d\u043e\u043c\u0443: \u043e\u0442 200\u00a0\u043c\u0441 \u0434\u043e 8\u00a0\u0441\u0435\u043a\u0443\u043d\u0434. \u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0447\u0435\u0441\u0442\u043d\u043e \u0436\u0434\u0430\u043b\u0430 \u0441\u0442\u0430\u0442\u0443\u0441 \u0443\u0437\u043b\u0430 \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0447\u0435\u0440\u0435\u0437 10\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u00a0\u2014 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a\u00a0\u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.\u0427\u0442\u043e\u00a0\u043f\u043e\u043c\u043e\u0433\u043b\u043e:get_info \u0443 monero-wallet-rpc \u043d\u0435\u0442 (\u0432 \u0432\u0435\u0440\u0441\u0438\u0438 0.18.5.1\u00a0\u043c\u0435\u0442\u043e\u0434 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0441\u043e\u0442\u0430 \u0441\u0435\u0442\u0438 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0443\u00a0\u0434\u0435\u043c\u043e\u043d\u0430\u00a0\u2014 \u0438 \u0442\u043e, \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e, \u0430\u00a0\u043d\u0435\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e;\u0441\u0442\u0430\u0442\u0443\u0441 \u0443\u0437\u043b\u0430 \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u00a0\u0441\u0445\u0435\u043c\u0435 stale\u2011while\u2011revalidate: \u043a\u044d\u0448 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0\u0444\u043e\u043d;\u0434\u043b\u044f\u00a0\u0446\u0435\u043d\u044b\u00a0\u2014 \u0442\u043e\u0442\u00a0\u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434:snapshot(): PriceQuote {  if (this.source === &#8216;none&#8217;) return this.pending();  const cached = this.cache;  const stale = !cached || !cached.updatedAt || Date.now() &#8212; cached.updatedAt &gt;= CACHE_MS;  if (stale) void this.quote().catch(() =&gt; undefined);  return cached ?? this.pending();}\u0447\u0442\u0435\u043d\u0438\u044f (balance, address, transactions) \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 3\u20135\u00a0\u0441\u0435\u043a\u0443\u043d\u0434, \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0442\u0441\u044f: wallet RPC \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438 \u043f\u0430\u0440\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u043b\u0435\u0433\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442 \u0432\u0441\u0451.\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \/api\/wallet\/info\u00a0\u2014 \u043e\u043a\u043e\u043b\u043e 60\u00a0\u043c\u0441, \u0430\u00a0\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u043f\u0440\u043e\u0441\u0435.\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a05. \u0414\u0435\u043d\u044c\u0433\u0438 \u0438 float: \u0437\u0430\u043f\u044f\u0442\u0430\u044f \u0438 \u00ab\u043f\u044b\u043b\u044c\u00bb\u0422\u0435\u0441\u0442\u044b \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u0437\u0434\u043d\u043e, \u0438 \u043e\u043d\u0438 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0448\u043b\u0438 \u0434\u0432\u0430 \u0431\u0430\u0433\u0430 \u0432\u00a0\u0434\u0435\u043d\u0435\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435.\u041f\u0435\u0440\u0432\u044b\u0439. \u041f\u0430\u0440\u0441\u0435\u0440 \u0441\u0443\u043c\u043c \u0432\u044b\u0440\u0435\u0437\u0430\u043b \u0437\u0430\u043f\u044f\u0442\u044b\u0435 \u00ab\u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 \u0442\u044b\u0441\u044f\u0447\u00bb. \u041d\u0430\u00a0\u0432\u0445\u043e\u0434\u0435 &#171;1,5&#187; (\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0438\u043c\u0435\u043b \u0432\u00a0\u0432\u0438\u0434\u0443 1,5\u00a0XMR) \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c \u00ab15\u00bb\u00a0\u2014 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u00a0\u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437, \u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0435\u0451 \u0432\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u044f\u0442\u0430\u044f \u0431\u0435\u0437\u00a0\u0442\u043e\u0447\u043a\u0438\u00a0\u2014 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u0430\u00a0\u0441\u00a0\u0442\u043e\u0447\u043a\u043e\u0439\u00a0\u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0442\u044b\u0441\u044f\u0447:if (raw.includes(&#8216;,&#8217;)) {  raw = raw.includes(&#8216;.&#8217;) ? raw.replace(\/,\/g, &#187;) : raw.replace(&#8216;,&#8217;, &#8216;.&#8217;);}\u0412\u0442\u043e\u0440\u043e\u0439. \u0424\u043e\u0440\u043c\u0430\u0442\u0442\u0435\u0440 \u00ab\u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0448\u0435\u0441\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u0432\u00bb \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u044b\u043b\u044c \u043a\u0430\u043a 0.000000: \u0441\u0443\u043c\u043c\u0430 0,000000000001\u00a0XMR \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u0447\u0435\u0437\u0430\u043b\u0430. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a\u043e\u0432, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u00a0\u043f\u0440\u043e\u043f\u0430\u043b\u043e.\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u0432\u0435\u0437\u0434\u0435 \u043d\u0430 BigInt \u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f fiat\u2011\u043e\u0446\u0435\u043d\u043a\u0443:const numerator = atomicValue * priceScaled * 100n;const denominator = 1_000_000_000_000n * scale;const cents = (numerator + denominator \/ 2n) \/ denominator;\u041a\u0443\u0440\u0441 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0443\u00a0\u0431\u0438\u0440\u0436\u0438 (Kraken XMR\/USDT, CoinGecko XMR\/USD) \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0435\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u043b, \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u00a0\u043c\u0438\u043d\u0443\u0442\u0443, \u0438 \u043f\u0440\u0438\u00a0\u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 API \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0443\u0441\u0442\u043e\u0435\u00a0\u2014 \u00ab\u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0443\u0440\u0441\u00bb \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u0435\u0431\u0435 \u043d\u0435\u00a0\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442.\u0413\u0440\u0430\u0431\u043b\u0438 \u2116\u00a06. \u0416\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0441\u0435\u0441\u0441\u0438\u0438 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430monero-wallet-rpc \u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0434\u0438\u043d \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043b. \u0418\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0432\u0435\u0449\u0438:\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u0442\u00a0\u0436\u0435 \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u043d\u0435\u043b\u044c\u0437\u044f\u00a0\u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u00abis opened by another wallet program\u00bb;\u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c seed, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c close_wallet \u2192 open_wallet(password) \u2192 query_key(mnemonic); \u043f\u0440\u0438\u00a0\u043d\u0435\u0432\u0435\u0440\u043d\u043e\u043c \u043f\u0430\u0440\u043e\u043b\u0435 \u0441\u0435\u0441\u0441\u0438\u044f \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439, \u0430\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u00a0\u044d\u043a\u0440\u0430\u043d \u0432\u044b\u0431\u043e\u0440\u0430 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430;\u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u044d\u043a\u0435\u043d\u0434\u0430 \u0443\u043f\u0430\u043b \u0438\u043b\u0438\u00a0\u0431\u044b\u043b \u0443\u0431\u0438\u0442, \u043a\u043e\u0448\u0435\u043b\u0451\u043a \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u00ab\u0437\u0430\u043d\u044f\u0442\u044b\u043c\u00bb. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u00a0\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0431\u044d\u043a\u0435\u043d\u0434 \u0441\u0430\u043c \u0434\u0435\u043b\u0430\u0435\u0442 close_wallet, \u0438\u043d\u0430\u0447\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u0442\u00a0\u0436\u0435 \u0444\u0430\u0439\u043b.\u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043d\u044e\u0430\u043d\u0441: \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f open\/close RPC \u0447\u0435\u0441\u0442\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u00ab\u043a\u043e\u0448\u0435\u043b\u0451\u043a \u043d\u0435\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u00bb, \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u0440\u043e\u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b \u044d\u0442\u043e \u043a\u0430\u043a \u00ab\u0441\u0435\u0441\u0441\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u0430\u00bb \u0438 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u00a0\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u044d\u043a\u0440\u0430\u043d. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u0432\u0435\u0441\u0442\u0438 \u00ab\u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439\u00bb \u0440\u0435\u0436\u0438\u043c: \u043f\u043e\u043a\u0430 \u0438\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u043d\u0435\u00a0\u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f.\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u041a\u043e\u0448\u0435\u043b\u0451\u043a\u00a0\u2014 \u044d\u0442\u043e \u0447\u0443\u0436\u0438\u0435 \u0434\u0435\u043d\u044c\u0433\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u043d\u0435 \u00ab\u043f\u043e\u0442\u043e\u043c\u00bb, \u0430\u00a0\u0441\u0440\u0430\u0437\u0443:monero-wallet-rpc \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e 127.0.0.1, digest\u2011\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430, &#8212;disable-rpc-login \u043d\u0435\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0438\u0433\u0434\u0435;\u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c RPC \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u0438\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435: \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0447\u0442\u043e\u2011\u0442\u043e \u0443\u0442\u0435\u0447\u0451\u0442 \u0438\u0437\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0440\u0442\u0432\u043e;\u043f\u0430\u0440\u043e\u043b\u044c \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430 \u043d\u0435\u00a0\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043d\u0438 \u0432 localStorage, \u043d\u0438 \u0432\u00a0\u043b\u043e\u0433\u0438, \u043d\u0438 \u0432\u00a0\u0444\u0430\u0439\u043b\u044b\u00a0\u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430\u00a0\u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0437\u043e\u0432\u0430;seed \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0\u043b\u0438\u0448\u044c \u043f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430 \u0438\u043b\u0438\u00a0\u043f\u0440\u0438\u00a0\u044f\u0432\u043d\u043e\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u0441\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044f, \u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u00a0\u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u00a0\u043b\u043e\u0433;\u0431\u044d\u043a\u0435\u043d\u0434 \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441\u00a0\u043d\u0435\u2011loopback Host\/Origin\u00a0\u2014 \u044d\u0442\u043e \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u00ab\u0437\u043b\u043e\u0439 \u0441\u0430\u0439\u0442 \u0432\u00a0\u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435\u00bb \u0438 \u043e\u0442\u00a0DNS\u2011rebinding;\u0441\u0443\u043c\u043c\u044b \u0438 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438\u00a0\u2014 \u0442\u043e\u043b\u044c\u043a\u043e BigInt \u0438 \u0441\u0442\u0440\u043e\u043a\u0438.\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043d\u0430\u00a0\u0436\u0438\u0432\u043e\u0439\u0417\u0434\u0435\u0441\u044c \u044f&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-495786","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/495786","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=495786"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/495786\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=495786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=495786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=495786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}