{"id":348930,"date":"2023-06-16T15:03:23","date_gmt":"2023-06-16T15:03:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=348930"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2023-06-16T15:03:23","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=348930","title":{"rendered":"<span>C\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. Solidity + Ganache<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/21e\/5b3\/b55\/21e5b3b55eb0a721f22f7b142a9e4af4.png\" alt=\"\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\" title=\"\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\" width=\"1560\" height=\"1169\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/21e\/5b3\/b55\/21e5b3b55eb0a721f22f7b142a9e4af4.png\"\/><\/p>\n<div><figcaption>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d Ganache. \u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u043d\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Truffle, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0434\u0435\u043f\u043b\u043e\u0439 \u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u043e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 Faucet. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 Faucet \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u044e\u0431\u043e\u0439 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0431\u0430\u043b\u0430\u043d\u0441. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f Faucet \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0435\u0442\u044f\u0445. \u0412 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 <a href=\"https:\/\/habr.com\/ru\/articles\/739342\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u0435\u0439<\/a> \u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 Faucet.<\/p>\n<h2>\u041b\u043e\u0433\u0438\u043a\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/h2>\n<p>\u041d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0434\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u0440\u0443\u0433\u0430\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043d\u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u0432\u0430\u043b \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0412 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Ether.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u044f\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 &#8212; \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 0.01 ETH \u0437\u0430 \u043e\u0434\u043d\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong>: \u0434\u0430\u0436\u0435 \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0441\u00a0\u043e\u0448\u0438\u0431\u043a\u043e\u0439, \u0441\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Ether \u0437\u0430\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u042d\u0442\u043e \u043f\u043b\u0430\u0442\u0430 \u0437\u0430\u00a0Gas, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043d\u0430\u00a0\u043d\u043e\u0434\u0430\u0445. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430\u00a0\u0441\u0435\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0435\u0442\u044c \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u043c\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043c\u0438, \u0438 \u043f\u043e\u043f\u0443\u0441\u0442\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0451 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c. \u0417\u0430\u00a0\u0442\u0430\u043a\u0438\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043e\u043d \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u0430\u0442\u0438\u0442\u044c, \u0438 \u0440\u0430\u043d\u043e \u0438\u043b\u0438\u00a0\u043f\u043e\u0437\u0434\u043d\u043e \u0438\u0437\u0440\u0430\u0441\u0445\u043e\u0434\u0443\u0435\u0442 \u0432\u0441\u0435 \u0441\u0432\u043e\u0438 Ether. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0441\u00a0\u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u043d\u0435\u00a0\u043d\u0430\u043d\u0435\u0441\u0451\u0442 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0432\u0440\u0435\u0434\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430.<\/p>\n<\/blockquote>\n<h2>\u041f\u043b\u0430\u043d<\/h2>\n<ol>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043f\u043e\u043b\u043d\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 A<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u043c\u0441\u044f \u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u0411 \u043a \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0443 \u0441 \u043f\u0440\u043e\u0441\u044c\u0431\u043e\u0439 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u00a0 \u0432 \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Ganache \u0438 Truffle. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0432 \u043c\u043e\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/articles\/737772\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043a\u0430\u043a EOA, Contract account, \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, Gas \u0434\u043b\u044f \u0432\u0430\u0441 \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b, \u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043a \u043c\u043e\u0438\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c, \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0432 \u043a\u043e\u043d\u0446\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442.<\/p>\n<h2>\u0428\u0430\u0433 1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/h2>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c truffle-\u043f\u0440\u043e\u0435\u043a\u0442:<\/p>\n<pre><code class=\"javascript\">$ mkdir simple-faucet $ cd simple-faucet $ truffle init<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"javascript\">. \u251c\u2500\u2500 contracts \u251c\u2500\u2500 migrations \u251c\u2500\u2500 test \u2514\u2500\u2500 truffle-config.js  4 directories, 1 file<\/code><\/pre>\n<p>\u0421 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u0438\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u043f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430, \u0430 \u043f\u043e\u043a\u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>contracts<\/code> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u0435\u0433\u043e <code>Faucet.sol<\/code>:<\/p>\n<pre><code class=\"javascript\">\/\/ SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 &lt;0.9.0;  contract Faucet {     \/\/ Accept any incoming amount     receive() external payable {}      \/\/ Give out ether to anyone who asks     function withdraw(uint withdraw_amount) public {         \/\/ Limit withdrawal amount         require(withdraw_amount &lt;= 0.01 ether);          \/\/ Send the amount to the address that requested it         payable(msg.sender).transfer(withdraw_amount);     } }<\/code><\/pre>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 <code>pragma solidity<\/code>  \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 <code>0.8.X<\/code>. Solidity \u043e\u0447\u0435\u043d\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u044f\u0437\u044b\u043a, \u0438 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u0435\u0440\u0441\u0438\u0438  <code>0.X<\/code> \u0438 <code>0.Y<\/code> \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u0441\u043a\u0430\u0436\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 <code>0.7.6<\/code>, \u0442\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 <code>pragma solidity<\/code>  \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u0438 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442 \u043a \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>\u042f \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 Solidity <code>0.8.20<\/code>, \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>truffle-config.js<\/code>, \u0438 \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Truffle \u0441\u0430\u043c \u043f\u043e\u0434\u0442\u044f\u043d\u0435\u0442 \u043d\u0443\u0436\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e.<\/p>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>truffle-config.js<\/code> \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 <code>0.8.20<\/code>:<\/p>\n<pre><code class=\"javascript\">\u00a0\/\/ Configure your compilers \u00a0 compilers: { \u00a0 \u00a0 solc: { \u00a0 \u00a0 \u00a0 version: \"0.8.20\",       \/\/ ...<\/code><\/pre>\n<p>\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442:<\/p>\n<pre><code class=\"javascript\">$ truffle compile<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>build\/contracts<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0444\u0430\u0439\u043b <code>Faucet.json<\/code> &#8212; \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043d\u0443\u0436\u0434 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Truffle \u043f\u043e\u043d\u044f\u043b \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0435\u043c\u0443 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u043c\u0443 \u043d\u0430 \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0435 <code>migrations<\/code> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b <code>1_faucet_migration.js<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"javascript\">var Faucet = artifacts.require(\"Faucet\");  module.exports = function(deployer) { \u00a0 deployer.deploy(Faucet); };<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432, \u0432\u0430\u0448\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/563\/6f5\/c5d\/5636f5c5d5d4985b45c6a04b8742eff5.png\" alt=\"\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Truffle\" title=\"\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Truffle\" width=\"1680\" height=\"884\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/563\/6f5\/c5d\/5636f5c5d5d4985b45c6a04b8742eff5.png\"\/><\/p>\n<div><figcaption>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Truffle<\/figcaption><\/div>\n<\/figure>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Ganache \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c Ganache:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e1\/a5a\/46c\/2e1a5a46c36d1213cd0b7daab77e7956.png\" alt=\"\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430\" title=\"\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e1\/a5a\/46c\/2e1a5a46c36d1213cd0b7daab77e7956.png\"\/><\/p>\n<div><figcaption>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b Ganache \u0441\u043c\u043e\u0433 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u043c\u0443 \u043d\u0430 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c. \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438: <code>truffle-config.js<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0439\u0434\u0451\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Contracts, \u0438 \u043d\u0430\u0436\u043c\u0451\u043c \u043d\u0430 LINK TRUFFLE PROJECTS:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/843\/2d2\/097\/8432d2097327409c77eda29ef7920ce8.png\" alt=\"\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Contracts \u043f\u043e\u043a\u0430 \u0431\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432\" title=\"\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Contracts \u043f\u043e\u043a\u0430 \u0431\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/843\/2d2\/097\/8432d2097327409c77eda29ef7920ce8.png\"\/><\/p>\n<div><figcaption>\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Contracts \u043f\u043e\u043a\u0430 \u0431\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043e\u043a\u043d\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c ADD PROJECT, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u0430\u043f\u043a\u0443 \u0441 \u043d\u0430\u0448\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>truffle-config.js<\/code>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/263\/c44\/db4\/263c44db431b9d3b8db47d577d24dce1.png\" alt=\"\u041e\u043a\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c\" title=\"\u041e\u043a\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/263\/c44\/db4\/263c44db431b9d3b8db47d577d24dce1.png\"\/><\/p>\n<div><figcaption>\u041e\u043a\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 SAVE AND RESTART.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Contracts \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0435. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043e\u043d \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3a3\/5bb\/e22\/3a35bbe22b1707b4b25015a5169acb9b.png\" alt=\"\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u043e\u044f\u0432\u043b\u0438\u0441\u044f, \u043d\u043e \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d\" title=\"\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u043e\u044f\u0432\u043b\u0438\u0441\u044f, \u043d\u043e \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3a3\/5bb\/e22\/3a35bbe22b1707b4b25015a5169acb9b.png\"\/><\/p>\n<div><figcaption>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u043e\u044f\u0432\u043b\u0438\u0441\u044f, \u043d\u043e \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0432\u0441\u0451 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u043c:<\/p>\n<pre><code class=\"javascript\">$ truffle migrate<\/code><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>Starting migrations... ====================== > Network name:    'ganache' > Network id:      5777 > Block gas limit: 6721975 (0x6691b7)   1_faucet_migration.js ===================== \u2807 Fetching solc version list from solc-bin. Attempt #1    Deploying 'Faucet'r. Attempt #1.    ------------------    > transaction hash:    0x326495056d8c8ae784b1bb35c448f65817bda7a6d0f7d4eb6db2b06b7dd02fbdg compiler. Attempt #1.    > Blocks: 0            Seconds: 0    > contract address:    0x38f409e4A974A7A0B19F707BDCFF56dC3F6Eb0a4    > block number:        1    > block timestamp:     1686649344    > account:             0x5591B981a1133b044B36d82502e838f597b0af6D    > balance:             99.999573572125    > gas used:            126349 (0x1ed8d)    > gas price:           3.375 gwei    > value sent:          0 ETH    > total cost:          0.000426427875 ETH     > Saving artifacts    -------------------------------------    > Total cost:      0.000426427875 ETH  Summary ======= > Total deployments:   1 > Final cost:          0.000426427875 ETH<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d. \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443, \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 &#8216;Summary&#8217; \u0432\u0438\u0434\u0438\u043c \u043f\u043e\u043b\u0435 &#8216;Final cost&#8217;, \u0430 \u0440\u044f\u0434\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432 Ether, \u0440\u0430\u0432\u043d\u043e\u0435 0.000426427875 ETH. \u042d\u0442\u043e \u043f\u043e\u0448\u043b\u0438\u043d\u0430 \u0432 \u0432\u0438\u0434\u0435 Gas \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u043f\u0440\u043e\u0441. \u041a\u0442\u043e \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u043b \u044d\u0442\u0443 \u043f\u043e\u0448\u043b\u0438\u043d\u0443? <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u044b\u0448\u0435, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u043e\u043b\u0435 <code>account: 0x5591B981a1133b044B36d82502e838f597b0af6D<\/code>, \u0430 \u043f\u043e\u0434 \u043d\u0438\u043c \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0435 <code>balance: 99.999573572125<\/code>. \u0417\u0430\u0439\u0434\u0451\u043c \u0432 Ganache \u0438 \u043d\u0430\u0439\u0434\u0451\u043c \u044d\u0442\u043e\u0442 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u0432\u0435\u0434\u044c \u043c\u044b \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Truffle \u043f\u0440\u0438 \u0434\u0435\u043f\u043b\u043e\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430? \u041e\u0442\u0432\u0435\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 Ganache \u0435\u0441\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438 \u043f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u041d\u0438\u0436\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432.<\/p>\n<p>\u0420\u0430\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d, \u0438 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0441 \u043a\u043e\u0433\u043e \u0431\u044b\u043b\u0430 \u0441\u043f\u0438\u0441\u0430\u043d\u0430 \u043f\u043e\u0448\u043b\u0438\u043d\u0430 \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0442\u043e\u0433\u0434\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0439\u0434\u0451\u043c \u0432 Ganache \u0438 \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0441\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d8d\/f10\/1f5\/d8df101f5e6b00f67a4b9110770b05aa.png\" alt=\"Ganache GUI \u043d\u0435 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u0443\u043c\u043c\" title=\"Ganache GUI \u043d\u0435 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u0443\u043c\u043c\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d8d\/f10\/1f5\/d8df101f5e6b00f67a4b9110770b05aa.png\"\/><\/p>\n<div><figcaption>Ganache GUI \u043d\u0435 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u0443\u043c\u043c<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e-\u0442\u043e \u0442\u0443\u0442 \u043d\u0435 \u0442\u0430\u043a. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043d\u0438 \u043e\u0434\u0438\u043d \u0431\u0430\u043b\u0430\u043d\u0441 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e Ganache \u043f\u0440\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043d\u0435 \u0432\u0438\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u0443\u043c\u043c. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0442\u043e\u0447\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>web3.js<\/code> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Truffle. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0439\u0434\u0451\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c Truffle:<\/p>\n<pre><code class=\"javascript\">$ truffle console<\/code><\/pre>\n<p>\u0414\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430:<\/p>\n<pre><code class=\"javascript\">truffle(ganache)><\/code><\/pre>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043a\u043e\u0434\u0430 \u043d\u0438\u0436\u0435, \u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043e \u0432\u044b\u0437\u043e\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Truffle, \u044f \u0431\u0443\u0434\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b <code>><\/code> \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441:<\/p>\n<pre><code class=\"javascript\">> web3.eth.getBalance('0x5591B981a1133b044B36d82502e838f597b0af6D');  \/\/ Out: '99999573572125000000'<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0431\u0430\u043b\u0430\u043d\u0441 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u043d\u0430 \u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Ether, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b\u043e \u0432 \u043f\u043e\u043b\u0435 &#8216;Final cost&#8217;. \u0414\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Truffle \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>Ctrl + D<\/code>. \u041d\u043e \u043e\u043d\u0430 \u043d\u0430\u043c \u0435\u0449\u0451 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0448\u0430\u0433\u0430\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0435\u0451 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437 \u0437\u0430\u0439\u0434\u0451\u043c \u0432 Ganache \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f5\/463\/307\/0f54633077c18dea0402c75234d1084a.png\" alt=\"\u0421\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: DEPLOYED\" title=\"\u0421\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: DEPLOYED\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0f5\/463\/307\/0f54633077c18dea0402c75234d1084a.png\"\/><\/p>\n<div><figcaption>\u0421\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: DEPLOYED<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u0442\u0430\u0442\u0443\u0441 \u0441\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043d\u0430 DEPLOYED. \u041f\u0440\u043e\u0432\u0430\u043b\u0438\u043c\u0441\u044f \u0432 \u0441\u0430\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u0412\u0438\u0434\u0438\u043c \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8fb\/9b0\/0aa\/8fb9b00aa17762b8852867f087c270a1.png\" alt=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: 0 ETH\" title=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: 0 ETH\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8fb\/9b0\/0aa\/8fb9b00aa17762b8852867f087c270a1.png\"\/><\/p>\n<div><figcaption>\u0411\u0430\u043b\u0430\u043d\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: 0 ETH<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043e\u0436\u0435\u043c \u0437\u0430\u0439\u0442\u0438 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Transactions \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0430\u043c\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u0441\u043e\u0437\u0434\u0430\u0432\u0448\u0443\u044e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/58d\/8ed\/94c\/58d8ed94c7e0ec93fdc5212466baddd6.png\" alt=\"\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u043b\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\" title=\"\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u043b\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/58d\/8ed\/94c\/58d8ed94c7e0ec93fdc5212466baddd6.png\"\/><\/p>\n<div><figcaption>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u043b\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0435\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0430.<\/p>\n<h2>\u0428\u0430\u0433 2. \u041f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/h2>\n<p>\u041f\u043e\u043f\u043e\u043b\u043d\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0441\u043a\u0430\u0436\u0435\u043c, \u043d\u0430 70 Ether. \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430. \u0410\u0434\u0440\u0435\u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u0438 \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0438\u0437 Ganache GUI.<\/p>\n<p>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">> web3.eth.sendTransaction({from: \"0x5591B981a1133b044B36d82502e838f597b0af6D\", to: \"0x38f409e4A974A7A0B19F707BDCFF56dC3F6Eb0a4\", value: web3.utils.toWei(\"70\", \"ether\")});<\/code><\/pre>\n<p>\u041a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u043e \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"javascript\">{   transactionHash: '0xf07947fc8346f297cde01e75ce241c090cc7beeee285b2df13fce213f4c416e5',   transactionIndex: 0,   blockNumber: 2,   blockHash: '0x7d3aae3081f531a87026ab3d7b52c87fe33ded0e4ab65e1e56a0fbb997265cff',   from: '0x5591b981a1133b044b36d82502e838f597b0af6d',   to: '0x38f409e4a974a7a0b19f707bdcff56dc3f6eb0a4',   cumulativeGasUsed: 21055,   gasUsed: 21055,   contractAddress: null,   logs: [],   logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',   status: true,   effectiveGasPrice: 3269736716,   type: '0x2' }<\/code><\/pre>\n<p>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u044b EOA \u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">web3.eth.getBalance(\"0x5591B981a1133b044B36d82502e838f597b0af6D\")  \/\/ Out: '29999504727818444620'<\/code><\/pre>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">web3.eth.getBalance(\"0x38f409e4A974A7A0B19F707BDCFF56dC3F6Eb0a4\")  \/\/ Out: '70000000000000000000'<\/code><\/pre>\n<p>\u0412 Ganache \u043c\u044b \u0442\u043e\u0436\u0435 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u0441\u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c 70 Ether:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/708\/715\/8d1\/7087158d1f78baf70a3ff72a0586e11f.png\" alt=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 70 ETH \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\" title=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 70 ETH \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/708\/715\/8d1\/7087158d1f78baf70a3ff72a0586e11f.png\"\/><\/p>\n<div><figcaption>\u0411\u0430\u043b\u0430\u043d\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 70 ETH \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0431\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f \u043d\u0430 70 Ether:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c27\/42d\/e31\/c2742de311fd90bd1c1dedec9e05d318.png\" alt=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f \u043d\u0430 70 ETH\" title=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f \u043d\u0430 70 ETH\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c27\/42d\/e31\/c2742de311fd90bd1c1dedec9e05d318.png\"\/><\/p>\n<div><figcaption>\u0411\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f \u043d\u0430 70 ETH<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u0437\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0441 EOA \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 EOA \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u0438 \u043c\u044b \u044f\u0432\u043d\u043e \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u042d\u0442\u043e \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0438 EOA, \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c Ether \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u0447\u0451\u0442. \u0417\u0434\u0435\u0441\u044c \u0432 \u0434\u0435\u043b\u043e \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0430 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c fallback \u0444\u0443\u043d\u043a\u0446\u0438\u0439 &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>receive()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 Solidity \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0446\u0435\u043b\u0435\u0439 \u044f\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f Ether \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442.<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c fallback \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438 \u043e\u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0434\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>receive()<\/code>. C \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442:<\/p>\n<pre><code class=\"javascript\">fallback() external payable {}<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>fallback()<\/code> \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u043d\u043e \u0435\u0433\u043e \u043d\u0435\u0442 \u0432 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0435, \u0430 \u0435\u0441\u043b\u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0432 \u043f\u043e\u043b\u0435 <code>value<\/code> \u0431\u044b\u043b\u0438 \u0435\u0449\u0451 \u0438 Ether, \u0442\u043e \u043e\u043d\u0438 \u0437\u0430\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u0421\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>payable<\/code>.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0436\u0435 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c Ether \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 fallback \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c Ether \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438 \u0434\u0432\u0435 fallback \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u041b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u043a\u0440\u0430\u0442\u043a\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0445\u0435\u043c\u043e\u0439:<\/p>\n<pre><code>        Ether sent to contract                   |             msg.data empty ?                  \/ \\                yes  no               \/      \\   receive() exists?   fallback()             \/ \\           yes  no           \/     \\     receive()  fallback()<\/code><\/pre>\n<p><code>msg.data<\/code> &#8212; \u044d\u0442\u043e \u043f\u043e\u043b\u0435 <code>data<\/code> \u0432 \u0442\u0435\u043b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0438 \u0435\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u0445, \u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0442\u043e \u043a\u043e\u0434 \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>receive()<\/code> \u0431\u044b\u043b\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>fallback()<\/code> \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u0447 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e (\u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438).<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong>: \u043f\u0440\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Web IDE, \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u043a <a href=\"https:\/\/remix.ethereum.org\/\" rel=\"noopener noreferrer nofollow\">Remix IDE<\/a>, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u0432\u0430\u0441 \u043a\u0435\u0439\u0441\u044b. \u0422\u0430\u043a\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a Truffle \u0438 Ganache \u0443\u0436\u0435 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/blockquote>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043d\u0430\u0448 Faucet \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0435, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0451 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e &#8212; \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438.<\/p>\n<h2>\u0428\u0430\u0433 3. \u0421\u043d\u044f\u0442\u0438\u0435 Ether \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u043c\u0441\u044f \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043a \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0443, \u0438 \u0432\u044b\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434 <code>withdraw()<\/code>, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u044f\u0442\u044c \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 0.01 Ether. \u0414\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c \u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0435\u0439 \u043d\u0430\u0434 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u0443\u0447\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Truffle, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Truffle \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"javascript\">> const instance = await Faucet.deployed();<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043c\u0435\u0442\u043e\u0434\u0443 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 <code>withdraw()<\/code> \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c:<\/p>\n<pre><code class=\"javascript\">> instance.withdraw(web3.utils.toWei(\"0.01\", \"ether\"), {from: '0xc2AdBa94A888cB8c25f48b4b3dAd91F751617157'});<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043f\u043e\u043b\u0435\u043c <code>from<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438 \u0432\u0442\u043e\u0440\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0432 \u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430. \u0415\u0433\u043e \u043d\u0435\u0442 \u0432 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0435 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0432 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0435. \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e. \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438 \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, \u0442\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0443\u0448\u043b\u0430 \u0431\u044b \u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e.<\/p>\n<p>\u041a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"javascript\">{   tx: '0x0dda5e8f6c1ec125629a4c295765ce143d1be6d9ce91914cfe014b117ba00ef8',   receipt: {     transactionHash: '0x0dda5e8f6c1ec125629a4c295765ce143d1be6d9ce91914cfe014b117ba00ef8',     transactionIndex: 0,     blockNumber: 3,     blockHash: '0xf65ea4b0e29960bd175eb61e7d32766bac7aee1ad33404d17b69070b131e4179',     from: '0xc2adba94a888cb8c25f48b4b3dad91f751617157',     to: '0x38f409e4a974a7a0b19f707bdcff56dc3f6eb0a4',     cumulativeGasUsed: 28565,     gasUsed: 28565,     contractAddress: null,     logs: [],     logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',     status: true,     effectiveGasPrice: 3174122382,     type: '0x2',     rawLogs: []   },   logs: [] }<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u044b.<\/p>\n<p>EOA \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f 0.01 Ether \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">> web3.eth.getBalance(\"0xc2AdBa94A888cB8c25f48b4b3dAd91F751617157\");  \/\/ '100009909331194158170'<\/code><\/pre>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0437\u0430\u0447\u0438\u0441\u043b\u0438\u043b\u043e\u0441\u044c \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 0.01 Ether, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0437\u0430 Gas.<\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u043e\u0441\u043b\u0435 \u0441\u043d\u044f\u0442\u0438\u044f \u0441 \u043d\u0435\u0433\u043e 0.01 Ether:<\/p>\n<pre><code class=\"javascript\">> web3.eth.getBalance(\"0x38f409e4A974A7A0B19F707BDCFF56dC3F6Eb0a4\");  \/\/ '69990000000000000000'<\/code><\/pre>\n<p>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0430 <code>withdraw()<\/code>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c39\/9b9\/fe7\/c399b9fe7aaeaf397a76a36e3e92db9c.png\" alt=\"\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 withdraw() \u0443 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\" title=\"\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 withdraw() \u0443 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c39\/9b9\/fe7\/c399b9fe7aaeaf397a76a36e3e92db9c.png\"\/><\/p>\n<div><figcaption>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 withdraw() \u0443 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0441\u043d\u044f\u0442\u0438\u044f 0.01 Ether:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8bb\/bb1\/531\/8bbbb15316c04d8d75a723ef0862a486.png\" alt=\"\u0421 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0443\u0448\u043b\u043e 0.01 ETH \u043d\u0430 EOA \u0430\u043a\u043a\u0430\u0443\u043d\u0442\" title=\"\u0421 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0443\u0448\u043b\u043e 0.01 ETH \u043d\u0430 EOA \u0430\u043a\u043a\u0430\u0443\u043d\u0442\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8bb\/bb1\/531\/8bbbb15316c04d8d75a723ef0862a486.png\"\/><\/p>\n<div><figcaption>\u0421 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0443\u0448\u043b\u043e 0.01 ETH \u043d\u0430 EOA \u0430\u043a\u043a\u0430\u0443\u043d\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 0.01 Ether:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ef3\/0ef\/e98\/ef30efe984a101bb513d460d9d060da7.png\" alt=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0435\u043c\u0443 0.01 ETH \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\" title=\"\u0411\u0430\u043b\u0430\u043d\u0441 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0435\u043c\u0443 0.01 ETH \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef3\/0ef\/e98\/ef30efe984a101bb513d460d9d060da7.png\"\/><\/p>\n<div><figcaption>\u0411\u0430\u043b\u0430\u043d\u0441 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0435\u043c\u0443 0.01 ETH \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435 \u043d\u0430\u0448\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0434\u043b\u044f \u0441\u043d\u044f\u0442\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0c2\/af0\/3ac\/0c2af03acba03b2e7ddc18ea53e82f68.png\" alt=\"\u0412\u0441\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\" title=\"\u0412\u0441\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\" width=\"2434\" height=\"1824\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0c2\/af0\/3ac\/0c2af03acba03b2e7ddc18ea53e82f68.png\"\/><\/p>\n<div><figcaption>\u0412\u0441\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0435\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u043d\u0430\u0448 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0435\u0442\u0438, \u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u0442\u044c \u0441 \u043d\u0435\u0433\u043e Ether, \u043d\u0443 \u0438\u043b\u0438 \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u041a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0435\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/articles\/739342\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0451. \u041d\u0430\u0448\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c \u043f\u043e\u0434\u043e\u0448\u043b\u043e \u043a \u043a\u043e\u043d\u0446\u0443. \u041c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 Ganache, \u0443\u0437\u043d\u0430\u043b\u0438 \u043a\u0430\u043a \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c, \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 fallback \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0447\u0430\u0441\u0442\u0438<\/summary>\n<div class=\"spoiler__content\">\n<ol>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/737772\/\" rel=\"noopener noreferrer nofollow\">\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f web3.js \u0438 Ethereum<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/738234\/\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0437\u0434\u0430\u0451\u043c, \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c Ethereum \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 web3.js \u0438 Ganache<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/739342\/\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a Ethereum Testnet \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u043e\u043b\u044c\u043a\u043e web3.js \u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u044c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/739958\/\" rel=\"noopener noreferrer nofollow\">\u0410\u0434\u0440\u0435\u0441\u0430 \u0432 Ethereum<\/a><\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/741798\/\"> https:\/\/habr.com\/ru\/articles\/741798\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\">\n<div><figcaption>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d Ganache. \u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u043d\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Truffle, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0434\u0435\u043f\u043b\u043e\u0439 \u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u043e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 Faucet. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 Faucet \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u044e\u0431\u043e\u0439 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0431\u0430\u043b\u0430\u043d\u0441. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f Faucet \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0435\u0442\u044f\u0445. \u0412 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 <a href=\"https:\/\/habr.com\/ru\/articles\/739342\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u0435\u0439<\/a> \u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 Faucet.<\/p>\n<h2>\u041b\u043e\u0433\u0438\u043a\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/h2>\n<p>\u041d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0434\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u0440\u0443\u0433\u0430\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043d\u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u0432\u0430\u043b \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0412 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Ether.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u044f\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 &#8212; \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 0.01 ETH \u0437\u0430 \u043e\u0434\u043d\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong>: \u0434\u0430\u0436\u0435 \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0441\u00a0\u043e\u0448\u0438\u0431\u043a\u043e\u0439, \u0441\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Ether \u0437\u0430\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u042d\u0442\u043e \u043f\u043b\u0430\u0442\u0430 \u0437\u0430\u00a0Gas, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f\u00a0\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043d\u0430\u00a0\u043d\u043e\u0434\u0430\u0445. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430\u00a0\u0441\u0435\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0435\u0442\u044c \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u043c\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043c\u0438, \u0438 \u043f\u043e\u043f\u0443\u0441\u0442\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0451 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c. \u0417\u0430\u00a0\u0442\u0430\u043a\u0438\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043e\u043d \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u0430\u0442\u0438\u0442\u044c, \u0438 \u0440\u0430\u043d\u043e \u0438\u043b\u0438\u00a0\u043f\u043e\u0437\u0434\u043d\u043e \u0438\u0437\u0440\u0430\u0441\u0445\u043e\u0434\u0443\u0435\u0442 \u0432\u0441\u0435 \u0441\u0432\u043e\u0438 Ether. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0441\u00a0\u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u043d\u0435\u00a0\u043d\u0430\u043d\u0435\u0441\u0451\u0442 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0432\u0440\u0435\u0434\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430.<\/p>\n<\/blockquote>\n<h2>\u041f\u043b\u0430\u043d<\/h2>\n<ol>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043f\u043e\u043b\u043d\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 A<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u043c\u0441\u044f \u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u0411 \u043a \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0443 \u0441 \u043f\u0440\u043e\u0441\u044c\u0431\u043e\u0439 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u00a0 \u0432 \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Ganache \u0438 Truffle. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0432 \u043c\u043e\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/articles\/737772\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043a\u0430\u043a EOA, Contract account, \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, Gas \u0434\u043b\u044f \u0432\u0430\u0441 \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b, \u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043a \u043c\u043e\u0438\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c, \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0432 \u043a\u043e\u043d\u0446\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442.<\/p>\n<h2>\u0428\u0430\u0433 1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/h2>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c truffle-\u043f\u0440\u043e\u0435\u043a\u0442:<\/p>\n<pre><code class=\"javascript\">$ mkdir simple-faucet $ cd simple-faucet $ truffle init<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"javascript\">. \u251c\u2500\u2500 contracts \u251c\u2500\u2500 migrations \u251c\u2500\u2500 test \u2514\u2500\u2500 truffle-config.js  4 directories, 1 file<\/code><\/pre>\n<p>\u0421 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u0438\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u043f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430, \u0430 \u043f\u043e\u043a\u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>contracts<\/code> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u0435\u0433\u043e <code>Faucet.sol<\/code>:<\/p>\n<pre><code class=\"javascript\">\/\/ SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 &lt;0.9.0;  contract Faucet {     \/\/ Accept any incoming amount     receive() external payable {}      \/\/ Give out ether to anyone who asks     function withdraw(uint withdraw_amount) public {         \/\/ Limit withdrawal amount         require(withdraw_amount &lt;= 0.01 ether);          \/\/ Send the amount to the address that requested it         payable(msg.sender).transfer(withdraw_amount);     } }<\/code><\/pre>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 <code>pragma solidity<\/code>  \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 <code>0.8.X<\/code>. Solidity \u043e\u0447\u0435\u043d\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u044f\u0437\u044b\u043a, \u0438 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u0435\u0440\u0441\u0438\u0438  <code>0.X<\/code> \u0438 <code>0.Y<\/code> \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u0441\u043a\u0430\u0436\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 <code>0.7.6<\/code>, \u0442\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 <code>pragma solidity<\/code>  \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u0438 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442 \u043a \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>\u042f \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 Solidity <code>0.8.20<\/code>, \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>truffle-config.js<\/code>, \u0438 \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Truffle \u0441\u0430\u043c \u043f\u043e\u0434\u0442\u044f\u043d\u0435\u0442 \u043d\u0443\u0436\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e.<\/p>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>truffle-config.js<\/code> \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 <code>0.8.20<\/code>:<\/p>\n<pre><code class=\"javascript\">\u00a0\/\/ Configure your compilers \u00a0 compilers: { \u00a0 \u00a0 solc: { \u00a0 \u00a0 \u00a0 version: \"0.8.20\",       \/\/ ...<\/code><\/pre>\n<p>\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442:<\/p>\n<pre><code class=\"javascript\">$ truffle compile<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>build\/contracts<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0444\u0430\u0439\u043b <code>Faucet.json<\/code> &#8212; \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043d\u0443\u0436\u0434 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a Truffle \u043f\u043e\u043d\u044f\u043b \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0435\u043c\u0443 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u043c\u0443 \u043d\u0430 \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0435 <code>migrations<\/code> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b <code>1_faucet_migration.js<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"javascript\">var Faucet = artifacts.require(\"Faucet\");  module.exports = function(deployer) { \u00a0 deployer.deploy(Faucet); };<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432, \u0432\u0430\u0448\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Truffle<\/figcaption><\/div>\n<\/figure>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Ganache \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c Ganache:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b Ganache \u0441\u043c\u043e\u0433 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u043c\u0443 \u043d\u0430 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c. \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438: <code>truffle-config.js<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0439\u0434\u0451\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Contracts, \u0438 \u043d\u0430\u0436\u043c\u0451\u043c \u043d\u0430 LINK TRUFFLE PROJECTS:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Contracts \u043f\u043e\u043a\u0430 \u0431\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043e\u043a\u043d\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c ADD PROJECT, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u0430\u043f\u043a\u0443 \u0441 \u043d\u0430\u0448\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>truffle-config.js<\/code>:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041e\u043a\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u043c<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 SAVE AND RESTART.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Contracts \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0435. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043e\u043d \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043f\u043e\u044f\u0432\u043b\u0438\u0441\u044f, \u043d\u043e \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0432\u0441\u0451 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u043c:<\/p>\n<pre><code class=\"javascript\">$ truffle migrate<\/code><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>Starting migrations... ====================== > Network name:    'ganache' > Network id:      5777 > Block gas limit: 6721975 (0x6691b7)   1_faucet_migration.js ===================== \u2807 Fetching solc version list from solc-bin. Attempt #1    Deploying 'Faucet'r. Attempt #1.    ------------------    > transaction hash:    0x326495056d8c8ae784b1bb35c448f65817bda7a6d0f7d4eb6db2b06b7dd02fbdg compiler. Attempt #1.    > Blocks: 0            Seconds: 0    > contract address:    0x38f409e4A974A7A0B19F707BDCFF56dC3F6Eb0a4    > block number:        1    > block timestamp:     1686649344    > account:             0x5591B981a1133b044B36d82502e838f597b0af6D    > balance:             99.999573572125    > gas used:            126349 (0x1ed8d)    > gas price:           3.375 gwei    > value sent:          0 ETH    > total cost:          0.000426427875 ETH     > Saving artifacts    -------------------------------------    > Total cost:      0.000426427875 ETH  Summary ======= > Total deployments:   1 > Final cost:          0.000426427875 ETH<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d. \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443, \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 &#8216;Summary&#8217; \u0432\u0438\u0434\u0438\u043c \u043f\u043e\u043b\u0435 &#8216;Final cost&#8217;, \u0430 \u0440\u044f\u0434\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432 Ether, \u0440\u0430\u0432\u043d\u043e\u0435 0.000426427875 ETH. \u042d\u0442\u043e \u043f\u043e\u0448\u043b\u0438\u043d\u0430 \u0432 \u0432\u0438\u0434\u0435 Gas \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u043f\u0440\u043e\u0441. \u041a\u0442\u043e \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u043b \u044d\u0442\u0443 \u043f\u043e\u0448\u043b\u0438\u043d\u0443? <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u044b\u0448\u0435, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u043e\u043b\u0435 <code>account: 0x5591B981a1133b044B36d82502e838f597b0af6D<\/code>, \u0430 \u043f\u043e\u0434 \u043d\u0438\u043c \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0435 <code>balance: 99.999573572125<\/code>. \u0417\u0430\u0439\u0434\u0451\u043c \u0432 Ganache \u0438 \u043d\u0430\u0439\u0434\u0451\u043c \u044d\u0442\u043e\u0442 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u0432\u0435\u0434\u044c \u043c\u044b \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Truffle \u043f\u0440\u0438 \u0434\u0435\u043f\u043b\u043e\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430? \u041e\u0442\u0432\u0435\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 Ganache \u0435\u0441\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438 \u043f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u041d\u0438\u0436\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432.<\/p>\n<p>\u0420\u0430\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d, \u0438 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0441 \u043a\u043e\u0433\u043e \u0431\u044b\u043b\u0430 \u0441\u043f\u0438\u0441\u0430\u043d\u0430 \u043f\u043e\u0448\u043b\u0438\u043d\u0430 \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0442\u043e\u0433\u0434\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0439\u0434\u0451\u043c \u0432 Ganache \u0438 \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0441\u044f:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Ganache GUI \u043d\u0435 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u0443\u043c\u043c<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e-\u0442\u043e \u0442\u0443\u0442 \u043d\u0435 \u0442\u0430\u043a. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043d\u0438 \u043e\u0434\u0438\u043d \u0431\u0430\u043b\u0430\u043d\u0441 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e Ganache \u043f\u0440\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043d\u0435 \u0432\u0438\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u0443\u043c\u043c. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0442\u043e\u0447\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>web3.js<\/code> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Truffle. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0439\u0434\u0451\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c Truffle:<\/p>\n<pre><code class=\"javascript\">$ truffle console<\/code><\/pre>\n<p>\u0414\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430:<\/p>\n<pre><code class=\"javascript\">truffle(ganache)><\/code><\/pre>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043a\u043e\u0434\u0430 \u043d\u0438\u0436\u0435, \u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043e \u0432\u044b\u0437\u043e\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Truffle, \u044f \u0431\u0443\u0434\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b <code>><\/code> \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441:<\/p>\n<pre><code class=\"javascript\">> web3.eth.getBalance('0x5591B981a1133b044B36d82502e838f597b0af6D');  \/\/ Out: '99999573572125000000'<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0431\u0430\u043b\u0430\u043d\u0441 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u043d\u0430 \u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Ether, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b\u043e \u0432 \u043f\u043e\u043b\u0435 &#8216;Final cost&#8217;. \u0414\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Truffle \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>Ctrl + D<\/code>. \u041d\u043e \u043e\u043d\u0430 \u043d\u0430\u043c \u0435\u0449\u0451 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0448\u0430\u0433\u0430\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0435\u0451 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437 \u0437\u0430\u0439\u0434\u0451\u043c \u0432 Ganache \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: DEPLOYED<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u0442\u0430\u0442\u0443\u0441 \u0441\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043d\u0430 DEPLOYED. \u041f\u0440\u043e\u0432\u0430\u043b\u0438\u043c\u0441\u044f \u0432 \u0441\u0430\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u0412\u0438\u0434\u0438\u043c \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0411\u0430\u043b\u0430\u043d\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430: 0 ETH<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043e\u0436\u0435\u043c \u0437\u0430\u0439\u0442\u0438 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Transactions \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0430\u043c\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u0441\u043e\u0437\u0434\u0430\u0432\u0448\u0443\u044e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u043b\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0435\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0430.<\/p>\n<h2>\u0428\u0430\u0433 2. \u041f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430<\/h2>\n<p>\u041f\u043e\u043f\u043e\u043b\u043d\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0441\u043a\u0430\u0436\u0435\u043c, \u043d\u0430 70 Ether. \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430. \u0410\u0434\u0440\u0435\u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u0438 \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0438\u0437 Ganache GUI.<\/p>\n<p>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">> web3.eth.sendTransaction({from: \"0x5591B981a1133b044B36d82502e838f597b0af6D\", to: \"0x38f409e4A974A7A0B19F707BDCFF56dC3F6Eb0a4\", value: web3.utils.toWei(\"70\", \"ether\")});<\/code><\/pre>\n<p>\u041a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u043e \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"javascript\">{   transactionHash: '0xf07947fc8346f297cde01e75ce241c090cc7beeee285b2df13fce213f4c416e5',   transactionIndex: 0,   blockNumber: 2,   blockHash: '0x7d3aae3081f531a87026ab3d7b52c87fe33ded0e4ab65e1e56a0fbb997265cff',   from: '0x5591b981a1133b044b36d82502e838f597b0af6d',   to: '0x38f409e4a974a7a0b19f707bdcff56dc3f6eb0a4',   cumulativeGasUsed: 21055,   gasUsed: 21055,   contractAddress: null,   logs: [],   logsBloom:<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-348930","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/348930","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=348930"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/348930\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=348930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=348930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=348930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}