{ "version": "https://jsonfeed.org/version/1", "title": "\u4ee5\u592a\u574a", "description": "\u4ee5\u592a\u574a\u662f\u4e00\u4e2a\u4e3a\u53bb\u4e2d\u5fc3\u5316\u5e94\u7528\u7a0b\u5e8f\u800c\u751f\u7684\u5168\u7403\u5f00\u6e90\u5e73\u53f0\u3002", "home_page_url": "go/ethereum", "feed_url": "feed/ethereum.json", "icon": "https://cdn.v2ex.com/navatar/2cbc/a448/1110_large.png?m=1761929523", "favicon": "https://cdn.v2ex.com/navatar/2cbc/a448/1110_normal.png?m=1761929523", "items": [ { "author": { "url": "member/paivansade", "name": "paivansade", "avatar": "https://cdn.v2ex.com/avatar/54fe/d8b3/638921_large.png?m=1770538473" }, "url": "t/1191394", "date_modified": "2026-02-10T08:27:37+00:00", "content_html": "

\u6700\u8fd1\u5728\u505a Account Abstraction \u76f8\u5173\u7684\u96c6\u6210\uff0c\u867d\u7136 Paymaster \u548c\u7b7e\u540d\u62bd\u8c61\u5e26\u6765\u7684 UX \u63d0\u5347\u5f88\u660e\u663e\uff0c\u4f46\u6211\u5bf9 Bundler \uff08\u6253\u5305\u5668\uff09\u7684\u73b0\u72b6\u6709\u70b9\u62c5\u5fe7\u3002

\n

\u76ee\u524d\u7684\u516c\u5171 Bundler \u670d\u52a1\u4f3c\u4e4e\u9ad8\u5ea6\u96c6\u4e2d\u5728\u51e0\u5bb6\u5927\u5382\u624b\u91cc\u3002\u867d\u7136\u534f\u8bae\u8bbe\u8ba1\u4e0a\u662f\u53bb\u4e2d\u5fc3\u5316\u7684\uff0c\u4f46\u5728\u5b9e\u9645\u7684 mempool \u8fd8\u6ca1\u5b8c\u5168\u6253\u901a\u4e4b\u524d\uff0cUserOp \u7684\u6297\u5ba1\u67e5\u6027\uff08 Censorship Resistance \uff09\u611f\u89c9\u751a\u81f3\u4e0d\u5982\u4f20\u7edf\u7684 EOA \u4ea4\u6613\uff1f

\n

\u7279\u522b\u662f\u8003\u8651\u5230\u79c1\u6709\u5185\u5b58\u6c60\uff08 Private Mempool \uff09\u548c MEV \u7684\u7ed3\u5408\uff0c\u672a\u6765\u7684 Bundler \u4f1a\u4e0d\u4f1a\u6f14\u53d8\u6210\u53e6\u4e00\u79cd\u5f62\u5f0f\u7684 Builder \u5784\u65ad\uff1f\u4e0d\u77e5\u9053\u5927\u5bb6\u5728\u8bbe\u8ba1\u94b1\u5305\u67b6\u6784\u65f6\uff0c\u662f\u81ea\u5efa Bundler \u8fd8\u662f\u4fe1\u4efb\u516c\u5171\u6c60\uff1f\u60f3\u542c\u542c\u5927\u5bb6\u7684\u6743\u8861\u3002

\n", "date_published": "2026-02-07T07:43:22+00:00", "title": "ERC-4337 \u7684 Bundler \u7f51\u7edc\u4f1a\u4e0d\u4f1a\u6210\u4e3a\u65b0\u7684\u5ba1\u67e5\u5355\u70b9\uff1f", "id": "t/1191394" }, { "author": { "url": "member/sdjl", "name": "sdjl", "avatar": "https://cdn.v2ex.com/avatar/be6a/d876/5055_large.png?m=1741067330" }, "url": "t/1179240", "title": "\u6700\u8fd1\u5b66\u4e86\u4e00\u70b9\u70b9 web3 \u5f00\u53d1\uff0c\u6211\u628a\u5b66\u4e60\u5185\u5bb9\u505a\u6210\u7f51\u7ad9\u7b14\u8bb0\uff0c\u5206\u4eab\u7ed9 web3 \u521d\u5b66\u8005", "id": "t/1179240", "date_published": "2025-12-16T06:28:28+00:00", "content_html": "

\u5b66\u4e60\u7b14\u8bb0\uff1a https://learn-web3.guoranzan.com

\n

\u76ee\u524d\u5185\u5bb9\u4e0d\u591a\uff0c\u5982\u679c\u6709\u548c\u6211\u4e00\u6837\u7684 web3 \u65b0\u624b\u53ef\u4ee5\u770b\u770b\u3002

\n

\u5982\u679c\u4f60\u89c9\u5f97\u7f3a\u5c11\u4ec0\u4e48\u5185\u5bb9\uff0c\u8bf7\u5728\u672c\u5e16\u4e2d\u56de\u590d\uff0c\u6211\u53ef\u80fd\u4f1a\u6839\u636e\u5927\u5bb6\u7684\u5efa\u8bae\u53bb\u5b66\u4e60\u65b0\u5185\u5bb9\uff0c\u7136\u540e\u518d\u628a\u7b14\u8bb0\u5206\u4eab\u51fa\u6765\u3002

\n" }, { "author": { "url": "member/qingxia", "name": "qingxia", "avatar": "https://cdn.v2ex.com/avatar/6729/6f36/300207_large.png?m=1565185249" }, "url": "t/1173404", "title": "\u72d7\u5c4e\u8fd0\u3002\u6628\u665a\u7761\u89c9\u524d\u4e0b\u4e86\u5355 eth \u7684 10 \u500d\u7684\u505a\u7a7a\u5408\u7ea6\uff0c\u9192\u6765\u4e00\u770b\u8d5a\u4e86 30%\u3002\u53d1\u5e16\u5f97\u745f\u4e00\u4e0b", "id": "t/1173404", "date_published": "2025-11-17T23:30:13+00:00", "content_html": "\u771f\u6ca1\u60f3\u5230\uff0c\u8d70\u4e86\u72d7\u5c4e\u8fd0\u3002

\u867d\u7136\u6ca1\u591a\u5c11\u94b1\uff0c\u4f46\u8fd8\u662f\u633a\u5f00\u5fc3\u7684\u3002

\u5206\u4eab\u4e0b\u597d\u8fd0\uff0c\u5e0c\u671b\u5927\u5bb6\u4eca\u5929\u90fd\u80fd\u9047\u5230\u5e78\u8fd0\u7684\u4e8b\u513f" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/1169816", "date_modified": "2025-10-31T16:50:14+00:00", "content_html": "\u4e00\u4e2a\u8dd1\u5728 Base \u4e0a\u7684\u6709\u8da3\u9879\u76ee\uff1a

https://basepaint.xyz/gallery

\u6bcf\u5929\u5927\u5bb6\u4e00\u8d77\u753b\u4e00\u5f20 256x256 \u7684\u50cf\u7d20\u827a\u672f\u753b\uff0c\u753b\u597d\u4e4b\u540e\u7684 24 \u5c0f\u65f6\u5185\u5176\u4ed6\u4eba\u53ef\u4ee5 Mint \uff0c\u7136\u540e\u6240\u6709\u53c2\u4e0e\u753b\u7684\u4eba\u5206\u94b1\u3002

Mint \u65f6\u95f4\u7ed3\u675f\u4e4b\u540e\uff0c\u4e0a OpenSea \u4ea4\u6613\u3002

\u5df2\u7ecf\u8fd0\u884c\u4e86 800 \u591a\u5929\u3002

", "date_published": "2025-10-31T16:50:02+00:00", "title": "BasePaint", "id": "t/1169816" }, { "author": { "url": "member/renfei", "name": "renfei", "avatar": "https://cdn.v2ex.com/gravatar/2a08972a89c1538ee21d680378452869?s=73&d=retro" }, "url": "t/1157493", "title": "\u4ee5\u592a\u574a\u53ef\u4ee5\u968f\u4fbf\u58f0\u660e\u6211\u5411\u5916\u8f6c\u51fa Token\uff1f\u4e0d\u9700\u8981\u6211\u7684\u540c\u610f\u548c\u6388\u6743\uff1f", "id": "t/1157493", "date_published": "2025-09-06T08:32:41+00:00", "content_html": "

\u521a\u521a\u53d1\u751f\u4e86\u4e24\u7b14\u4ea4\u6613\uff0c\u4e0d\u662f\u6211\u64cd\u4f5c\u7684\uff0c\u6240\u4ee5\u6211\u6709\u70b9\u61f5\uff0c\u95ee\u95ee\u6709\u7ecf\u9a8c\u7684\u5927\u4f6c\u600e\u4e48\u56de\u4e8b

\n

\u4e24\u7b14\u4ea4\u6613

\n\n

\u6d89\u53ca\u5230\u7684 Token

\n

https://etherscan.io/token/0x96a4a852002fda2478b9dde6ba83485bd4efdac4

\n

\u6211\u7684\u56f0\u60d1

\n\n

\u6211\u662f\u65b0\u624b\uff0c\u4ee5\u592a\u574a\u7684\u4e16\u754c\u90fd\u80fd\u8fd9\u4e48\u73a9\u5417\uff1f

\n" }, { "author": { "url": "member/chenny1211", "name": "chenny1211", "avatar": "https://cdn.v2ex.com/gravatar/f11b8a2d923067587cec40fea6f6bfe9?s=73&d=retro" }, "url": "t/1155992", "title": "\u5728\u5bb6\u91cc\u8dd1 ETH\u3001BSC \u8282\u70b9\u8981\u7d27\u4e0d", "id": "t/1155992", "date_published": "2025-08-30T13:47:26+00:00", "content_html": "

\u9700\u8981\u5b66\u4e60\u548c\u7814\u7a76\uff0c\u81ea\u5df1\u7528\u672c\u5730\u4e8c\u624b\u670d\u52a1\u5668\u8dd1\u533a\u5757\u94fe\u5168\u8282\u70b9\uff0c\u4e0d\u6302\u4ee3\u7406\uff0c\u4f1a\u4e0d\u4f1a\u627e\u4e0a\u95e8\u6765\u3002\u4e0d\u505a\u53d1\u5e01\u7b49\u6d3b\u52a8\u3002

\n" }, { "author": { "url": "member/Jianrry", "name": "Jianrry", "avatar": "https://cdn.v2ex.com/avatar/a482/1eca/441309_large.png?m=1755154138" }, "url": "t/1154483", "title": "Sign \u7b2c\u4e8c\u671f\u7a7a\u6295\u6d3b\u52a8\u5df2\u7ecf\u5f00\u59cb", "id": "t/1154483", "date_published": "2025-08-23T13:48:05+00:00", "content_html": "

\u524d\u8a00

\n

\u5b98\u7f51: https://sign.global

\n

Orange Dynasty(\u6a59\u8272\u738b\u671d): https://orange.sign.global

\n

\u9080\u8bf7\u7801: E91LBNPLPT

\n

\u6307\u5357

\n
    \n
  1. \u4e0b\u8f7d App.
  2. \n
  3. \u8f93\u5165\u9080\u8bf7\u7801(E91LBNPLPT), \u6ce8\u518c\u8d26\u53f7.
  4. \n
  5. \u5173\u8054\u94b1\u5305.
  6. \n
  7. \u8d5a\u53d6\u6a58\u5b50.
  8. \n
\n

\u6d3b\u52a8\u7ed3\u675f\u540e, \u6a58\u5b50\u7684\u6570\u91cf\u8d8a\u591a, $SIGN \u7684\u7a7a\u6295\u6570\u91cf\u8d8a\u591a.

\n

\u5982\u4f55\u8d5a\u53d6\u66f4\u591a\u7684\u6a58\u5b50\uff1f

\n

\u6bcf\u65e5\u6253\u5361(\u63a8\u8350)

\n

\u7b7e\u5230\u5956\u52b1 100 \u6a58\u5b50.

\n

\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1

\n\n

\u4e92\u52a8\u8d5a\u6a58\u5b50

\n

\u53c2\u52a0\u60ac\u8d4f\u8d34, \u4e2d\u5956\u8005\u83b7\u5f97 ? \u6a58\u5b50.

\n

\u62a5\u540d\u53c2\u52a0\u6d3b\u52a8

\n

\u62a5\u540d\u53c2\u52a0\u5b98\u65b9\u4e3e\u529e\u7684\u6d3b\u52a8, \u7b26\u5408\u6761\u4ef6\u7684\u53c2\u4e0e\u8005\u83b7\u5f97 ? \u6a58\u5b50.

\n

BABT \u9a8c\u8bc1

\n
    \n
  1. \u6ce8\u518c\u6216\u767b\u5f55\u5e01\u5b89.
  2. \n
  3. \u5728\u9996\u9875\u641c\u7d22 \u201cBABT\u201d.
  4. \n
  5. \u94f8\u9020 BAB \u4ee3\u5e01.
  6. \n
  7. \u4f7f\u7528 BAB \u4ee3\u5e01, \u9a8c\u8bc1\u8eab\u4efd.
  8. \n
\n" }, { "author": { "url": "member/ooTwToo", "name": "ooTwToo", "avatar": "https://cdn.v2ex.com/avatar/3cd6/3f45/120274_large.png?m=1753069181" }, "url": "t/1152630", "title": "\u5927\u6bdb\uff0c\u9886\u53d6 Etherscan \u79ef\u5206", "id": "t/1152630", "date_published": "2025-08-15T05:51:55+00:00", "content_html": "

\"image.png\"

\n

https://etherscan.io/points

\n

\u76ee\u524d OG \u4efb\u52a1\u7ed9\u7684\u6700\u591a\uff0c500 \u4e2a\uff0c\u5982\u679c\u4f60\u7684\u6ce8\u518c\u65f6\u95f4\u66f4\u65e9\uff0c\u4f1a\u66f4\u591a\u3002\n\u4e0b\u4e00\u6b65\u53ef\u80fd\u662f\u7a7a\u6295\u4e86\u3002

\n" }, { "author": { "url": "member/Jianrry", "name": "Jianrry", "avatar": "https://cdn.v2ex.com/avatar/a482/1eca/441309_large.png?m=1755154138" }, "url": "t/1151372", "date_modified": "2025-08-10T08:26:30+00:00", "content_html": "

https://opensea.io/collection/ten-years-of-ethereum

\n

\u5df2\u7ecf\u94f8\u9020\u7684 \u4ee5\u592a\u574a\u5341\u5468\u5e74\u7eaa\u5ff5 NFT \uff0c\u53ef\u4ee5\u5728 OpenSea \u51fa\u552e\uff0c\u76ee\u524d\u6700\u4f4e\u552e\u4ef7 5.01$\u3002

\n

\u524d\u60c5\u63d0\u8981\uff1a https://v2ex.com/t/1148745

\n

\u4e4b\u524d\u94f8\u9020\u4e00\u4e2a \u4ee5\u592a\u574a\u5341\u5468\u5e74\u7eaa\u5ff5 NFT \u7684\u6210\u672c\u6700\u4f4e 0.5U \uff0c\u6709\u4eba\u4f7f\u7528\u4e86\u591a\u4e2a\u94b1\u5305\u94f8\u9020\u4e86\u51e0\u767e\u4e2a\u3002

\n

\u606d\u559c\u8fd9\u4f4d\u8001\u54e5 @bloks \uff0c\u4ed6\u94f8\u9020\u4e86 100 \u4e2a NFT \u3002\u5355\u4e2a\u7684\u6210\u672c\u5728 1U \u5de6\u53f3\uff0c\u5dee\u4e0d\u591a\u7ffb\u4e86 5 \u500d\u3002

\n

\u73b0\u5728\u4ef7\u683c\u4e00\u76f4\u5728\u4e0b\u8dcc\uff0c\u4ece\u4e4b\u524d\u7684 6.40U \u8dcc\u5230 5.01U \u3002\u6211\u5efa\u8bae\u5c3d\u65e9\u629b\u552e\uff0c\u5f53\u7136\u5c06\u6765\u4e5f\u53ef\u80fd\u4f1a\u4e0a\u6da8\u3002

\n", "date_published": "2025-08-10T08:23:00+00:00", "title": "\u4ee5\u592a\u574a\u5341\u5468\u5e74\u7eaa\u5ff5 NFT \u5730\u677f\u4ef7 5.01U", "id": "t/1151372" }, { "author": { "url": "member/kirieievk", "name": "kirieievk", "avatar": "https://cdn.v2ex.com/gravatar/2f67e3a3c62aaf38c9d666e0ac6536e6?s=73&d=retro" }, "url": "t/1150968", "title": "eth \u8fd9\u6b21\u80fd\u7834\u524d\u9ad8\u5417", "id": "t/1150968", "date_published": "2025-08-08T03:39:22+00:00", "content_html": "

\u6700\u8fd1\u8d8b\u52bf\u4e0d\u8fc7,\u5c24\u5176\u5f88\u591a\u5927\u4f6c\u5728\u558a\u5355.

\n" }, { "author": { "url": "member/kmephisto", "name": "kmephisto", "avatar": "https://cdn.v2ex.com/gravatar/19f0e2fcfbc6f9664f5a532f5238193d?s=73&d=retro" }, "url": "t/1148853", "title": "\u6211\u4ece\u5e01\u5b89\u63d0\u73b0 eth\uff0c\u4e3a\u5565\u94b1\u5305 account 1 \u7684 eth \u5730\u5740\u53ea\u53ef\u4ee5\u7528 BSC \u7f51\u7edc\uff0c account 2 \u7684\u5730\u5740\u5374 BSC \u548c ETH \u7f51\u7edc\u90fd\u53ef\u4ee5\u7528\uff1f", "id": "t/1148853", "date_published": "2025-07-30T11:04:32+00:00", "content_html": "

\u6211\u4ece\u5e01\u5b89\u63d0\u73b0 ethd \u5230\u6211\u7684\u94b1\u5305\uff0c\n\u4e3a\u5565\u94b1\u5305 account1 \u7684 eth \u5730\u5740\u53ea\u53ef\u4ee5\u7528 BSC \u7f51\u7edc\uff0cETH \u663e\u793a\u4e0d\u5339\u914d\uff1b\n\u800c account2 \u7684 eth \u5730\u5740\u5374 BSC \u548c ETH \u7f51\u7edc\u90fd\u53ef\u4ee5\u7528\uff1f

\n" }, { "author": { "url": "member/Bullish", "name": "Bullish", "avatar": "https://cdn.v2ex.com/avatar/0bac/e0c3/698558_large.png?m=1760142421" }, "url": "t/1148745", "title": "\u4ee5\u592a\u574a\u5341\u5468\u5e74\u7eaa\u5ff5 NFT", "id": "t/1148745", "date_published": "2025-07-30T05:46:36+00:00", "content_html": "\u9650\u65f6\u4e0d\u9650\u91cf\u53ef\u4ee5\u5f00\u5e72\u4e86\uff0c\u53ef\u80fd\u6709\u7528\uff0c\u4e5f\u53ef\u80fd\u6ca1\u5565\u7528\uff0c\u8fd9\u8c01\u77e5\u9053\u5462\u3002
\u6839\u636e\u4ee5\u5f80\u6545\u4e8b\uff0c\u672a\u6765\u67d0 meme \u9879\u76ee\u4f1a\u7ed9\u7a7a\u6295\u4e5f\u8bf4\u4e0d\u5b9a\u3002
\u6211\u51c6\u5907 Mint 100 \u4e2a \ud83d\ude0c \ud83d\ude04 \ud83d\ude05

Mint \u5730\u5740\uff1a https://ethereum.org/en/10years
" }, { "author": { "url": "member/eccstartup", "name": "eccstartup", "avatar": "https://cdn.v2ex.com/avatar/5d76/7a83/66546_large.png?m=1486289910" }, "url": "t/1147757", "date_modified": "2025-07-25T12:39:07+00:00", "content_html": "

\u6211\u770b\u5b83\u6ca1\u7528\u5f00\u6e90\uff0c\u597d\u5947\u505a\u8fd9\u6837\u4e00\u4e2a\u7f51\u7ad9\u8981\u591a\u5c11\u94b1\u3002

\n", "date_published": "2025-07-25T12:36:05+00:00", "title": "\u590d\u523b\u4e00\u4e2a etherscan.io \u8fd9\u6837\u7684\u7f51\u7ad9\u9700\u8981\u591a\u5c11\u94b1\uff1f", "id": "t/1147757" }, { "author": { "url": "member/yodi", "name": "yodi", "avatar": "https://cdn.v2ex.com/gravatar/5fe00911695bae4a0a7a7e4023ecf8c0?s=73&d=retro" }, "url": "t/1146713", "title": "\u4ee5\u592a\u574a\u662f\u5426\u53ef\u4ee5\u79bb\u7ebf\u9a8c\u8bc1\u4ea4\u6613\u662f\u5426\u6210\u529f\uff1f", "id": "t/1146713", "date_published": "2025-07-21T12:31:11+00:00", "content_html": "

\u5728\u4e0d\u8fde\u63a5\u4e92\u8054\u7f51\u7684\u60c5\u51b5\u4e0b\uff0c\u662f\u5426\u53ef\u4ee5\u901a\u8fc7\u9884\u5b58\u4e00\u4e9b\u6570\u636e\uff08\u65e0\u9700\u7ecf\u5e38\u66f4\u65b0\uff09\uff0c\u5728\u6536\u5230\u4ea4\u6613\u53cc\u65b9\u94b1\u5305\u5730\u5740\u548c\u5176\u4ed6\u4ea4\u6613\u4fe1\u606f\u540e\uff0c\u662f\u5426\u53ef\u4ee5\u51ed\u5df2\u6709\u4fe1\u606f\u9a8c\u8bc1\u4ea4\u6613\u7ed3\u679c\uff1f

\n" }, { "author": { "url": "member/hannesgao", "name": "hannesgao", "avatar": "https://cdn.v2ex.com/gravatar/f13d5ead060a88d8b5207531f2de5786?s=73&d=retro" }, "url": "t/1144899", "date_modified": "2025-07-13T07:40:01+00:00", "content_html": "

\"\u9ed1\u5ba2\u677e\u5956\u9879\"

\n
\n

TL;DR

\n\n
\n

\u5404\u79cd\u4f53\u9a8c

\n\n
\n

\u4e00\u4e9b\u6280\u672f/\u786c\u4ef6\u8ba8\u8bba

\n\n
\n

\u4e00\u4e9b\u5410\u69fd

\n\n
\n

\u4e00\u4e9b\u5947\u9047

\n\n
\n

\u591a\u56fe\u6740\u732b\uff08\u5efa\u8bae\u7528 WLAN \u6d4f\u89c8\uff09

\n

\u521a\u7aef\u4e0a\u684c\u7684\u53c9\u70e7\u996d.jpg

\n

\"\u521a\u7aef\u4e0a\u684c\u7684\u53c9\u70e7\u996d\"

\n

\u4e00\u5206\u949f\u540e\u7684\u53c9\u70e7\u996d\uff08\u7897\uff09.jpg

\n

\"\u4e00\u5206\u949f\u540e\u7684\u53c9\u70e7\u996d\"

\n

\u4f60\u53ef\u66fe\u89c1\u8fc7\u51cc\u6668\u4e09\u70b9\u7684\u621b\u7eb3.gif

\n

\"\u51cc\u6668\u4e09\u70b9\u7684\u621b\u7eb3\"

\n

\u88ab\u6211\u62cd\u5f97\u5f88\u50cf 737 \u7684 A320.jpg

\n

\"\u50cf

\n

\u88ab\u6211\u62cd\u5f97\u7ec8\u4e8e\u50cf A320 \u7684 A320.jpg

\n

\"\u50cf

\n

\u5168\u4e16\u754c\u7684\u65e9\u73ed\u516c\u4ea4\u90fd\u662f\u4e00\u4e2a\u6837\uff0c\u621b\u7eb3\u4e5f\u4e0d\u4f8b\u5916.gif

\n

\"\u621b\u7eb3\u65e9\u73ed\u516c\u4ea4\"

\n

\u73af\u536b\u5de5\u4eba\u5927\u53d4\u4e5f\u4f9d\u65e7\u6709\u7ae5\u5fc3.jpg

\n

\"\u7ae5\u5fc3\u73af\u536b\u5de5\"

\n

\u5c31\u95ee\u4f60 Zou \u4e0d Zou.gif

\n

\"Zou

\n

\u6c11\u5bbf\u5165\u53e3\uff0c\u4e09\u5c42\u5c0f\u697c\uff0c\u722c\u697c\u7d2f\u6b7b\u4eba.gif

\n

\"\u4e09\u5c42\u5c0f\u697c\u6c11\u5bbf\"

\n

\u6700\u540e\uff0c\u4e00\u53ea\u56de\u5230 Karlsruhe \u4e4b\u540e\u88ab\u6211\u4ece\u90ae\u5c40\u4ea4\u4e86\u8d4e\u91d1\u624d\u63a5\u56de\u6765\u7684\uff0c\u88ab\u7a0e\u4e86\u7684\u5012\u9709\u5929\u72d7\u9547\u697c

\n

\"\u5012\u9709\u5929\u72d7\"

\n
\n

\u7248\u6743\u58f0\u660e

\n\n", "date_published": "2025-07-13T07:33:08+00:00", "title": "[ETHGlobal Cannes] \u7b2c\u4e00\u6b21\u53c2\u52a0 IRL \u9ed1\u5ba2\u677e\uff0c\u548c\u540c\u4e8b\u4e00\u8d77\u505a\u7684\u9879\u76ee\u83b7\u5956\u4e86\uff0c\u5f88\u5f00\u5fc3", "id": "t/1144899" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/1139145", "title": "\u76ee\u524d Ethereum \u751f\u6001\u91cc\u6709\u54ea\u4e9b\u5f62\u6001\u63a5\u8fd1 ko-fi.com / Buy Me a Coffee / Kickstarter \u7684\u4ea7\u54c1\uff1f", "id": "t/1139145", "date_published": "2025-06-17T05:04:01+00:00", "content_html": "https://ko-fi.com/

https://buymeacoffee.com/

https://www.kickstarter.com/" }, { "author": { "url": "member/dwu8555", "name": "dwu8555", "avatar": "https://cdn.v2ex.com/avatar/80ef/3e1b/293789_large.png?m=1734394843" }, "url": "t/1108507", "title": "Uniswap V4 \u4e2d\u5982\u4f55\u4ece PoolManager \u83b7\u53d6\u6307\u5b9a\u6c60\u7684 ETH \u4f59\u989d\uff1f", "id": "t/1108507", "date_published": "2025-02-01T05:33:14+00:00", "content_html": "\u5728 Uniswap V2 \u548c V3 \u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528\u6c60\u5408\u7ea6\u7684 balanceOf \u65b9\u6cd5\u6765\u83b7\u53d6\u6c60\u4e2d\u7684\u4f59\u989d\u3002

\u4f46\u5728 Uniswap V4 \u4e2d\uff0c\u6240\u6709\u6d41\u52a8\u6027\u5747\u7531\u7edf\u4e00\u7684 PoolManager \u5408\u7ea6\u7ba1\u7406\uff0c\u8fd9\u4f7f\u5f97\u5355\u4e2a\u6c60\u7684\u4f59\u989d\u67e5\u8be2\u53d8\u5f97\u4e0d\u90a3\u4e48\u76f4\u89c2\u3002

\u4e3e\u4e2a\u4f8b\u5b50\uff1a

- \u6c60 A\uff1a \u7531 1000 \u4e2a TokenA \u548c 1 \u4e2a ETH \u7ec4\u6210
- \u6c60 B\uff1a \u7531 1000 \u4e2a TokenB \u548c 1 \u4e2a ETH \u7ec4\u6210

\u6b64\u65f6\uff0cPoolManager \u5408\u7ea6\u4e2d\u603b\u5171\u5b58\u6709 2 \u4e2a ETH \u3002

\u8bf7\u95ee\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5982\u4f55\u4f7f\u7528\u7c7b\u4f3c\u4e8e balanceOf \u7684\u65b9\u5f0f\uff0c\u67e5\u8be2\u5230\u5177\u4f53\u67d0\u4e2a\u6c60\uff08\u4f8b\u5982\u6c60 A \u6216\u6c60 B \uff09\u7684 ETH \u4f59\u989d\uff1f\u6709\u4ec0\u4e48\u601d\u8def\u6216\u63a5\u53e3\u53ef\u4ee5\u53c2\u8003\u5417\uff1f" }, { "author": { "url": "member/dwu8555", "name": "dwu8555", "avatar": "https://cdn.v2ex.com/avatar/80ef/3e1b/293789_large.png?m=1734394843" }, "url": "t/1108497", "title": "Uniswap v4 \u51fa\u6765\u4e86\uff0c\u600e\u4e48\u770b\u4e0d\u61c2\u554a", "id": "t/1108497", "date_published": "2025-02-01T03:52:55+00:00", "content_html": "\u6240\u6709\u7684\u6c60\u5b50\u90fd\u7edf\u4e00\u5f52 PoolManager \u7ba1\uff0c\u90a3\u6211\u5982\u4f55\u67e5\u8be2\u67d0\u4e2a\u6c60\u5b50\u7684\u6d41\u52a8\u6027\u5462\uff1f" }, { "author": { "url": "member/brucexueth", "name": "brucexueth", "avatar": "https://cdn.v2ex.com/avatar/b56d/aee9/589477_large.png?m=1661750178" }, "url": "t/1098865", "title": "\u6709\u4eba\u5bf9 AI \u6a21\u578b\u6839\u636e\u5f00\u6e90\u9879\u76ee\u4f9d\u8d56\u548c\u6570\u636e\u751f\u6210\u6743\u91cd\u5206\u914d\u8d5e\u52a9\u8d44\u91d1\u611f\u5174\u8da3\u5417\uff1f", "id": "t/1098865", "date_published": "2024-12-19T10:31:40+00:00", "content_html": "

Vitalik \u8d44\u52a9\u4e86 25WU \u505a\u8fd9\u4e2a\u5206\u914d\u5b9e\u9a8c\uff0c\u5176\u4e2d 8WU \u4f5c\u4e3a\u63d0\u4ea4\u6a21\u578b\u7684\u5956\u52b1\uff0c17WU \u5c06\u6309\u7167\u51e0\u4e2a\u6a21\u578b\u7684\u6743\u91cd\u5bf9\u76f8\u5173\u5f00\u6e90\u9879\u76ee\u8fdb\u884c\u5206\u914d\u3002\u6b22\u8fce\u5bf9 AI \u6a21\u578b\u8bad\u7ec3\u548c\u5f00\u6e90\u9879\u76ee\u8d44\u52a9\u611f\u5174\u8da3\u7684\u670b\u53cb\u5173\u6ce8\uff0c\u4e00\u8d77\u7ec4\u961f\u7ade\u8d5b\uff0c\u8be6\u60c5\uff1a

\n

https://x.com/ETHPanda_Org/status/1869689559078068642

\n" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/1079284", "date_modified": "2024-10-11T09:12:25+00:00", "content_html": "https://rollup.wtf/", "date_published": "2024-10-11T09:10:53+00:00", "title": "\u8fd9\u4e2a UI \u5b9e\u5728\u662f\u592a\u9177\u4e86", "id": "t/1079284" }, { "author": { "url": "member/ltfree", "name": "ltfree", "avatar": "https://cdn.v2ex.com/gravatar/fffe1f0e50a9db5b001e68a2cda01dda?s=73&d=retro" }, "url": "t/1077337", "title": "\u641e\u722c\u866b\u524d\u7684\u4e00\u4e9b\u7591\u95ee", "id": "t/1077337", "date_published": "2024-10-01T16:28:12+00:00", "content_html": "

\u867d\u7136\u662f\u7a0b\u5e8f\u5458\uff0c\u4f46\u4e5f\u662f wb3 \u95e8\u5916\u6c49\n\u6700\u8fd1\u51c6\u5907\u641e\u4e2a eth \u516c\u94fe\u722c\u866b\uff0c\u83b7\u53d6\u4e00\u4e9b\u4ea4\u6613\u6570\u636e\u4e4b\u7c7b\u7684

\n

\u5728\u4f7f\u7528 web3py \u722c\u6570\u636e\u65f6\uff0c\u611f\u89c9\u5904\u7406\u4e00\u4e9b\u4e8b\u4ef6\u6bd4\u8f83\u9ebb\u70e6\uff08\u8f6c\u8d26\u3001\u4ea4\u6613\u7b49\uff09\u5f88\u96be\u533a\u5206\u67d0\u4e2a hash \u7684\u771f\u5b9e\u64cd\u4f5c

\n

\u7136\u540e\u53c8\u542c\u8bf4\u4e86 BlockScout \u7684 api \u53ef\u4ee5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u5982\u679c\u4f7f\u7528 BlockScout api \u7684\u8bdd\uff0c\u53c8\u4f1a\u6d89\u53ca\u5230\u5168\u8282\u70b9\u642d\u5efa\u7684\u95ee\u9898

\n

\u6240\u4ee5\uff0c\u76ee\u524d\u4e0d\u77e5\u9053\u5230\u5e95\u8be5\u9009\u62e9\u54ea\u4e2a\u4e86\n\u60f3\u77e5\u9053\u662f\u6211 webpy \u6846\u67b6\u5b66\u7684\u4e0d\u591f\u706b\u5019\uff0c\u6240\u4ee5\u624d\u533a\u5206\u4e0d\u4e86\u4e48\uff1f\n\u8fd8\u662f\u5927\u5bb6\u90fd\u5728\u4f7f\u7528 BlockScout \u8fd9\u79cd\u6d4f\u89c8\u5668\u5728\u641e\u6570\u636e\uff1f

\n

\u8c22\u8c22\u5404\u4f4d

\n" }, { "author": { "url": "member/ltfree", "name": "ltfree", "avatar": "https://cdn.v2ex.com/gravatar/fffe1f0e50a9db5b001e68a2cda01dda?s=73&d=retro" }, "url": "t/1075563", "date_modified": "2024-09-25T02:06:42+00:00", "content_html": "

\u505a\u94fe\u4e0a\u7edf\u8ba1\u51c6\u5907\u5728\u5bb6\u641e\u4e00\u4e2a\u5168\u8282\u70b9\u8bd5\u8bd5

\n

\u4e0d\u8fc7\u60f3\u77e5\u9053\u76ee\u524d eth \u5168\u8282\u70b9\u81f3\u5c11\u9700\u8981\u591a\u5c11\u786c\u76d8\u7a7a\u95f4\uff1f

\n

\u6709\u8bf4 2t \u7684 \u8fd8\u6709\u4eba\u8bf4\u5341\u51e0 t \u7684 \u8fd9\u5dee\u5f02\u4e5f\u592a\u5927\u4e86

\n", "date_published": "2024-09-25T01:11:47+00:00", "title": "\u76ee\u524d eth \u5168\u8282\u642d\u5efa\u786c\u76d8\u5360\u7528\u95ee\u9898", "id": "t/1075563" }, { "author": { "url": "member/SethShi", "name": "SethShi", "avatar": "https://cdn.v2ex.com/avatar/d921/a023/513815_large.png?m=1768297076" }, "url": "t/1021354", "date_modified": "2024-03-07T02:39:04+00:00", "content_html": "

\u5730\u5740: https://github.com/seth-shi/ethereum-wallet-generator-nodes\n\u6838\u5fc3\u4ee3\u7801\u5341\u51e0\u884c\u90fd\u662f\u8c03\u5305\u4fa0, \u5269\u4e0b\u7684\u5c31\u662f\u4e0a\u62a5\u72b6\u6001\u4e86

\n

\u5982\u56fe:\n\"\"

\n", "date_published": "2024-03-07T02:35:51+00:00", "title": "\u5199\u4e86\u4e00\u4e2a\u4ee5\u592a\u574a\u9753\u53f7\u751f\u6210\u5668, \u652f\u6301\u591a\u8282\u70b9\u8fd0\u884c, \u8ba9\u4f60\u7684\u4efb\u610f\u8bbe\u5907\u6210\u4e3a\u8ba1\u7b97\u8282\u70b9", "id": "t/1021354" }, { "author": { "url": "member/huzhikuizainali", "name": "huzhikuizainali", "avatar": "https://cdn.v2ex.com/avatar/1869/a390/522912_large.png?m=1752498684" }, "url": "t/1019441", "title": "\u4e3a\u4ec0\u4e48\u4ee5\u592a\u574a\u7684 Uncle rewards \u6bd4 block rewards \u5c11\u90a3\u4e48\u591a\uff1f", "id": "t/1019441", "date_published": "2024-02-29T04:58:46+00:00", "content_html": "

\u8bf7\u770b\u8fd9\u4e2a\u94fe\u63a5\u7684\u53f3\u4e0b\u89d2\u997c\u56fe\u3002https://etherscan.io/stat/supply

\n

Uncle rewards \u6bd4 block rewards \u5c11\u5f88\u591a\u3002Uncle rewards \u6bd4 block rewards \u5c11\u6211\u80fd\u7406\u89e3\u3002\u4f46\u662f\u5c11\u8fd9\u4e48\u591a\u6211\u5c31\u4e0d\u592a\u7406\u89e3\u4e86\u3002\u8003\u8651\u5230\u4ee5\u592a\u574a\u4f1a\u9891\u7e41\u51fa\u73b0\u4e34\u65f6\u5206\u53c9\u3002\u800c\u5c06\u6ca1\u6709\u6210\u4e3a\u6700\u957f\u94fe\u7684 block \u7eb3\u5165 Uncle \u5bf9\u4e3b\u5757\u4e5f\u662f\u6709\u597d\u5904\u7684\u3002\u56e0\u6b64\u4ece\u5229\u76ca\u9a71\u52a8\u7684\u89d2\u5ea6\uff0c\u4e3b\u5757\u6709\u52a8\u529b\u5c06\u9891\u7e41\u51fa\u73b0\u7684\u5b64\u5757\u7eb3\u5165 Uncle \u3002\u800c\u5b64\u5757\u4f1a\u56e0\u6b64\u83b7\u5f97 7/8 \u7684 block rewards \u3002

\n

\u56e0\u6b64 Uncle rewards \u7684\u603b\u4f53\u56de\u62a5\u4e0d\u5e94\u8be5\u6bd4 block rewards \u5c11\u8fd9\u4e48\u591a\uff01 \u56e0\u6b64\u4e8c\u8005\u6bd4\u4f8b\u5982\u6b64\u60ac\u6b8a\u7684\u539f\u56e0\u6709\u4eba\u77e5\u9053\u4e48\uff1f\uff08\u5728 2018 \u5e74\u65f6\u4e8c\u8005\u5dee\u8ddd\u5c31\u5f88\u5927\uff01\uff09

\n" }, { "author": { "url": "member/cmonkey", "name": "cmonkey", "avatar": "https://cdn.v2ex.com/gravatar/6cfd2daebe6d0543923368acdf4029bd?s=73&d=retro" }, "url": "t/1017630", "date_modified": "2024-02-22T10:16:41+00:00", "content_html": "

\u597d\u50cf\u4e00\u822c\u90fd\u80fd\u9886 200$, \u8fd8\u6ca1\u6709\u53bb\u9886\u7684\u8d76\u5feb\u53bb\u9886

\n

PS: \u6211\u7528\u7684 bravvos \u94b1\u5305\uff0c\u4ee5\u524d\u6211\u7528\u6bd4\u7279\u5e01\u90fd\u662f pc \u5ba2\u6237\u7aef\uff0c\u4e0b\u8f7d\u51e0\u767e G \u7684\u533a\u5757\uff0c\u73b0\u5728\u8fd9\u79cd\u52a9\u8bb0\u8bcd\u7684\u8fd8\u633a\u597d\u7684

\n

ref: https://provisions.starknet.io/

\n", "date_published": "2024-02-22T10:12:50+00:00", "title": "STARK \u90fd\u9886\u4e86\u5417\uff1f", "id": "t/1017630" }, { "author": { "url": "member/puppyguy", "name": "puppyguy", "avatar": "https://cdn.v2ex.com/avatar/33cf/42b3/6938_large.png?m=1358500284" }, "url": "t/976092", "title": "blockchain.com \u8fd8\u6709\u4e00\u70b9\u4ee5\u592a\u5e01\uff0c\u653e\u4e86\u51e0\u5e74\u4e86\u90fd\u5feb\u5fd8\u8bb0\u4e86\uff0c\u8bf7\u95ee\u5982\u4f55\u63d0\u73b0\u3002", "id": "t/976092", "date_published": "2023-09-22T02:32:37+00:00", "content_html": "" }, { "author": { "url": "member/dw2693734d", "name": "dw2693734d", "avatar": "https://cdn.v2ex.com/avatar/fbcf/03e0/601784_large.png?m=1702109329" }, "url": "t/964450", "title": "\u534e\u4e3a\u4e91\u5f00\u59cb\u505a\u4ee5\u592a\u574a\u8d28\u62bc\u670d\u52a1\u4e86 \u5144\u5f1f\u4eec \u600e\u4e48\u770b\uff1f", "id": "t/964450", "date_published": "2023-08-11T06:39:35+00:00", "content_html": "

\u6765\u6e90\uff1a https://support.huaweicloud.com/intl/zh-cn/nes-pledge/nes_pledge_0007.html" }, { "author": { "url": "member/blackcurrant", "name": "blackcurrant", "avatar": "https://cdn.v2ex.com/gravatar/22f634273dcf18fffea335487aa61485?s=73&d=retro" }, "url": "t/950958", "title": "\u4f60\u4eec\u8fd0\u884c\u7684\u4ee5\u592a\u574a\u5168\u8282\u70b9\u5b8c\u5168\u540c\u6b65\u7528\u4e86\u591a\u4e45\uff1f", "id": "t/950958", "date_published": "2023-06-22T18:56:41+00:00", "content_html": "

\u6211\u662f geth + prysm, \u73b0\u5728\u5df2\u7ecf\u540c\u6b65 10 \u5929\u4e86\uff0c\u4e00\u76f4\u5728 \u201cSyncing: state healing in progress\u201d\u3002

\n
INFO [06-22|18:54:13.462] Syncing: state healing in progress accounts=3,711,607@198.02MiB slots=8,055,945@593.43MiB codes=11058@76.99MiB nodes=92,361,600@24.04GiB pending=14388\nINFO [06-22|18:54:13.548] Forkchoice requested sync to new head number=17,537,066 hash=aa1e21..27027a finalized=17,536,982\nINFO [06-22|18:54:19.042] Syncing: chain download in progress synced=100.00% chain=500.57GiB headers=17,537,066@7.97GiB bodies=17,536,990@343.70GiB receipts=17,536,990@148.91GiB eta=15m5.948s\nINFO [06-22|18:54:21.617] Syncing: state healing in progress accounts=3,711,805@198.03MiB slots=8,056,014@593.44MiB codes=11059@77.00MiB nodes=92,362,539@24.04GiB pending=14452\nINFO [06-22|18:54:24.494] Forkchoice requested sync to new head number=17,537,067 hash=5bf4c3..5ed7eb finalized=17,536,982\nINFO [06-22|18:54:27.058] Syncing: chain download in progress synced=100.00% chain=500.57GiB headers=17,537,067@7.97GiB bodies=17,536,990@343.70GiB receipts=17,536,990@148.91GiB eta=15m17.887s\nINFO [06-22|18:54:29.886] Syncing: state healing in progress accounts=3,711,981@198.04MiB slots=8,056,130@593.45MiB codes=11059@77.00MiB nodes=92,363,556@24.04GiB pending=14423\nINFO [06-22|18:54:35.066] Syncing: chain download in progress synced=100.00% chain=500.57GiB headers=17,537,067@7.97GiB bodies=17,536,990@343.70GiB receipts=17,536,990@148.91GiB eta=15m17.905s\nINFO [06-22|18:54:36.324] Forkchoice requested sync to new head number=17,537,068 hash=a5f4c2..f7c310 finalized=17,536,982\nINFO [06-22|18:54:38.012] Syncing: state healing in progress accounts=3,712,105@198.05MiB slots=8,056,285@593.46MiB codes=11059@77.00MiB nodes=92,364,586@24.04GiB pending=14439\nINFO [06-22|18:54:43.076] Syncing: chain download in progress synced=100.00% chain=500.57GiB headers=17,537,068@7.97GiB bodies=17,536,990@343.70GiB receipts=17,536,990@148.91GiB eta=15m29.844s\nINFO [06-22|18:54:46.013] Syncing: state healing in progress accounts=3,712,247@198.06MiB slots=8,056,443@593.47MiB codes=11059@77.00MiB nodes=92,365,613@24.04GiB pending=14325\nINFO [06-22|18:54:49.878] Forkchoice requested sync to new head number=17,537,069 hash=82526a..574583 finalized=17,536,982\n
\n
> eth.syncing\n{\n currentBlock: 17536061,\n healedBytecodeBytes: 79428243,\n healedBytecodes: 10861,\n healedTrienodeBytes: 25439693259,\n healedTrienodes: 91090540,\n healingBytecode: 0,\n healingTrienodes: 1108,\n highestBlock: 17536140,\n startingBlock: 17501953,\n syncedAccountBytes: 52401351864,\n syncedAccounts: 231420135,\n syncedBytecodeBytes: 6471440984,\n syncedBytecodes: 944602,\n syncedStorage: 1007002838,\n syncedStorageBytes: 216338753051\n}\n
\n

\u8fd9\u662f\u6b63\u5e38\u7684\u5417\uff1f\u6709\u6ca1\u6709\u4ec0\u4e48\u52a0\u901f\u7684\u529e\u6cd5\uff1f

\n" }, { "author": { "url": "member/cathedrel", "name": "cathedrel", "avatar": "https://cdn.v2ex.com/gravatar/53dfa28d1216eee3dea9ace91e696120?s=73&d=retro" }, "url": "t/949136", "title": "\u4eca\u5929\u53d1\u73b0\u4ee5\u592a\u574a\u7684\u624b\u7eed\u8d39\u4e0b\u964d\u4e86\u5f88\u591a\uff0c\u53d1\u751f\u4e86\u5565\uff1f\u597d\u50cf\u6ca1\u770b\u89c1\u6709\u5347\u7ea7\u554a\uff1f\u54ea\u4f4d\u5927\u4f6c\u6307\u70b9\u4e00\u4e0b\uff1f\u8c22\u8c22", "id": "t/949136", "date_published": "2023-06-15T17:21:53+00:00", "content_html": "" }, { "author": { "url": "member/sx5486510", "name": "sx5486510", "avatar": "https://cdn.v2ex.com/gravatar/dc01fc16904c01098844376c00c7d796?s=73&d=retro" }, "url": "t/947278", "title": "\u73b0\u5728\u56fd\u5185\u8fd8\u80fd\u8fd0\u884c\u5168\u8282\u70b9\u5417", "id": "t/947278", "date_published": "2023-06-09T05:39:17+00:00", "content_html": "

\u6700\u65b0\u7248\u672c geth-linux-amd64-1.12.0 \uff0c\u8fd0\u884c\u4e3b\u94fe\u4e0a\nMessage handling failed in snap peer=f23ac6da err=EOF\nMessage handling failed in eth id=f23ac6da7c02f84a cOnn=dyndial err=EOF\nEthereum handshake failed id=5da4b7d6ed9bc552 cOnn=dyndial err=EOF

\n

\u57fa\u672c\u90fd\u662f\u8fde\u63a5\u5931\u8d25\u4e86 \u662f\u5c01\u6389\u4e86\u5417

\n" }, { "author": { "url": "member/Joker123456789", "name": "Joker123456789", "avatar": "https://cdn.v2ex.com/avatar/47d3/3395/482153_large.png?m=1676288679" }, "url": "t/942652", "title": "Magician-Scanning 1.0.12 \u53d1\u5e03", "id": "t/942652", "date_published": "2023-05-24T10:11:09+00:00", "content_html": "

\u672c\u6b21\u4e3b\u8981\u662f\u89e3\u51b3\u4e86\u51e0\u4e2a bug \uff0c\u7136\u540e\u6dfb\u52a0\u4e86\u4e24\u4e2a\u9526\u4e0a\u6dfb\u82b1\u7684\u529f\u80fd\u3002

\n
    \n
  1. \n

    \u626b\u63cf\u9891\u7387\u4e0d\u518d\u53d7\u9650\u5236\u4e86\uff0c\u53ea\u8981\u5927\u4e8e 1 \u6beb\u79d2\u5373\u53ef

    \n
  2. \n
  3. \n

    \u6dfb\u52a0\u4e86\u6700\u5927\u626b\u63cf\u5757\u9ad8\uff0c\u5f53\u626b\u63cf\u5230\u8fd9\u4e2a\u5757\u9ad8\u7684\u65f6\u5019\uff0c\u5c31\u4f1a\u81ea\u52a8\u505c\u6b62\u672c\u4efb\u52a1

    \n
  4. \n
  5. \n

    \u6dfb\u52a0\u4e86\u83b7\u53d6\u5f53\u524d\u626b\u63cf\u5230\u7684\u6700\u5927\u5757\u9ad8\u7684\u529f\u80fd

    \n
  6. \n
\n

\u8bbe\u7f6e\u6700\u5927\u626b\u63cf\u5757\u9ad8

\n

\u770b\u4e0b\u9762\u4ee3\u7801\u4e2d\u7684\u6709\u6ce8\u91ca\u7684\u90a3\u4e00\u884c

\n
EventThreadPool.init(1);\n\nMagicianBlockchainScan.create()\n .setRpcUrl(\n EthRpcInit.create()\n .addRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545\")\n )\n .setScanPeriod(5000)\n .setBeginBlockNumber(BigInteger.valueOf(24318610))\n .setEndBlockNumber(BigInteger.valueOf(24318680)) // \u626b\u63cf\u5230\u54ea\u4e2a\u5757\u9ad8\u5c31\u505c\u6b62\u8fd9\u4e2a\u4efb\u52a1\uff08\u4e0d\u8bbe\u7f6e\uff0c\u6216\u8005\u8bbe\u7f6e\u4e3a 0 \uff0c\u4ee3\u8868\u4e0d\u9650\u5236\uff09\n .addEthMonitorEvent(new EventOne())\n .start();\n
\n

\u83b7\u53d6\u5f53\u524d\u626b\u63cf\u5230\u7684\u6700\u5927\u5757\u9ad8

\n

\u770b\u4e0b\u9762\u4ee3\u7801\u4e2d\u7684\u6709\u6ce8\u91ca\u7684\u90a3\u4e00\u884c

\n
// \u5c06\u5bf9\u8c61\u62ff\u5230\nMagicianBlockchainScan blockChainScan = MagicianBlockchainScan.create()\n .setRpcUrl(\n EthRpcInit.create()\n .addRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545\")\n ) \n .setScanPeriod(5000) \n .setBeginBlockNumber(BigInteger.valueOf(24318610)) \n .addEthMonitorEvent(new EventOne())\n\nblockChainScan.start();\n\n// \u8c03\u7528\u8fd9\u4e2a\u65b9\u6cd5\u53ef\u4ee5\u83b7\u53d6\u5f53\u524d\u4efb\u52a1\u5df2\u7ecf\u626b\u63cf\u5230\u7684\u6700\u5927\u5757\u9ad8\n// \u6709\u4e00\u5b9a\u7684\u8bef\u5dee\uff0c\u56e0\u4e3a\u5728\u4f60\u83b7\u53d6\u7684\u8fd9\u4e00\u77ac\u95f4\uff0c\u626b\u63cf\u4efb\u52a1\u53ef\u80fd\u53c8\u626b\u63cf\u5230\u597d\u51e0\u4e2a\u65b0\u5757\u9ad8\u4e86\nblockChainScan.getCurrentBlockHeight();\n
\n

\u9664\u6b64\u4e4b\u5916\uff0c\u8fd8\u89e3\u51b3\u4e86\u00a0Magician-ContractsTools\u00a0\u8bbe\u7f6e chainId \u540e\u62a5\u9519\u7684 bug

\n

\u9879\u76ee\u5b98\u7f51

\n

https://magician-io.com

\n" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/921951", "title": "viem", "id": "t/921951", "date_published": "2023-03-07T08:35:54+00:00", "content_html": "https://viem.sh/docs/benchmarks.html

\u4e00\u4e2a\u65b0\u7684\u53c8\u5c0f\u53c8\u5feb\u7684 Ethereum JS \u5e93\u3002" }, { "author": { "url": "member/dw2693734d", "name": "dw2693734d", "avatar": "https://cdn.v2ex.com/avatar/fbcf/03e0/601784_large.png?m=1702109329" }, "url": "t/919561", "date_modified": "2023-02-27T07:59:01+00:00", "content_html": "

\u7b2c\u4e00\uff0c\u662f\u786c\u76d8\u5b58\u50a8\u7a7a\u95f4\uff0c\u5927\u6982\u9700\u8981\u591a\u5927

\n

\u7b2c\u4e8c\uff0c\u80fd\u591f\u5feb\u901f\u8fd4\u56de\u67d0\u4e00\u4e2a token \u7684 transaction \u8bb0\u5f55\uff0c\u4e0d\u5230 1s

\n

\u867d\u7136\u6709\u7b2c\u4e09\u65b9\u7684\u670d\u52a1\uff0c\u6bd4\u5982 dune.com \uff0c\u4f46\u662f\u7528\u7740\u59cb\u7ec8\u4e0d\u65b9\u4fbf\u3002

\n", "date_published": "2023-02-27T07:57:26+00:00", "title": "\u7528 PostgreSQL \u6765\u5b58\u50a8\u4ee5\u592a\u574a\u4e0a\u7684\u6240\u6709\u4ea4\u6613 transaction\uff0c\u5982\u4f55\u5206\u8868\u5206\u5e93\uff1f", "id": "t/919561" }, { "author": { "url": "member/dw2693734d", "name": "dw2693734d", "avatar": "https://cdn.v2ex.com/avatar/fbcf/03e0/601784_large.png?m=1702109329" }, "url": "t/915990", "title": "\u4ee5\u592a\u574a\u5168\u8282\u70b9\u548c\u5f52\u6863\u8282\u70b9\u4e4b\u95f4\u80fd\u4e92\u76f8\u540c\u6b65\u6570\u636e\u5417\uff1f", "id": "t/915990", "date_published": "2023-02-14T05:13:27+00:00", "content_html": "" }, { "author": { "url": "member/Keith", "name": "Keith", "avatar": "https://cdn.v2ex.com/avatar/073b/00ab/3267_large.png?m=1753346134" }, "url": "t/906603", "title": "eth \u548c bit \u57df\u540d\u672c\u8d28\u4e0a\u662f\u4e00\u6837\u7684\u5417\uff1f\u4e24\u8005\u5173\u7cfb\u7c7b\u4f3c com \u548c net\uff1f", "id": "t/906603", "date_published": "2023-01-04T11:03:55+00:00", "content_html": "

\u4e24\u8005\u529f\u80fd\u4e0a\u5e94\u8be5\u662f\u4e00\u6837\u7684\u5427\uff1f\u4f46\u652f\u6301\u7684\u94b1\u5305\u53c8\u4e0d\u4e00\u6837\uff0c\u521a\u5f00\u59cb\u4e86\u89e3\uff0c\u8fd8\u6709\u4e9b\u8ff7\u60d1

\n" }, { "author": { "url": "member/dw2693734d", "name": "dw2693734d", "avatar": "https://cdn.v2ex.com/avatar/fbcf/03e0/601784_large.png?m=1702109329" }, "url": "t/904525", "title": "\u5347\u7ea7\u6210\u5343\u5146\u5bbd\u5e26\uff0c Geth \u8282\u70b9\u4e00\u665a\u4e0a\u5c31\u540c\u6b65\u597d\u4e86", "id": "t/904525", "date_published": "2022-12-25T00:57:16+00:00", "content_html": "

128 \u4e00\u4e2a\u6708\u7535\u4fe1\u7684\u8d39\u7528\uff0c\u7b80\u76f4\u4e0d\u8981\u592a\u9999\u4e86\uff0c\u54c8\u54c8

\n" }, { "author": { "url": "member/dw2693734d", "name": "dw2693734d", "avatar": "https://cdn.v2ex.com/avatar/fbcf/03e0/601784_large.png?m=1702109329" }, "url": "t/903240", "title": "\u4e3a\u4ec0\u4e48\u592a\u574a\u8fd9\u79cd\u51e0\u5343\u4ebf\u5e02\u503c\u7684\u9879\u76ee\uff0c\u5c45\u7136\u8fde\u65ad\u7535\u4fdd\u62a4\u90fd\u505a\u4e0d\u597d\uff1f", "id": "t/903240", "date_published": "2022-12-18T00:56:16+00:00", "content_html": "

\u5bb6\u91cc\u7684\u7535\u8111\u7a81\u7136\u65ad\u7535\uff0c\u7136\u540e\u91cd\u542f Geth \u5168\u8282\u70b9\uff0c\u7136\u540e\u6570\u636e\u5c31\u4e22\u4e86

\n" }, { "author": { "url": "member/dw2693734d", "name": "dw2693734d", "avatar": "https://cdn.v2ex.com/avatar/fbcf/03e0/601784_large.png?m=1702109329" }, "url": "t/903235", "title": "\u4ee5\u592a\u574a\u5168\u8282\u70b9\u7a81\u7136\u65ad\u7535\u540e\u65e0\u6cd5\u540c\u6b65", "id": "t/903235", "date_published": "2022-12-17T21:45:38+00:00", "content_html": "

\u63d0\u793a\u6570\u636e\u5e93\u635f\u574f\uff0c\u5c31\u4e00\u76f4\u5728\u4fee\u590d\uff0c\u4fee\u590d\u4e86\u597d\u51e0\u4e2a\u5c0f\u65f6\u4e86\uff0c\u8fd8\u6ca1\u597d

\n" }, { "author": { "url": "member/falconeye", "name": "falconeye", "avatar": "https://cdn.v2ex.com/avatar/01b6/3978/4745_large.png?m=1669960717" }, "url": "t/899597", "title": "\u8bf7\u6559\u4e00\u4e0b\u8d2d\u4e70 ENS \u57df\u540d\u652f\u4ed8\u7684\u95ee\u9898", "id": "t/899597", "date_published": "2022-12-02T06:04:01+00:00", "content_html": "\u521a\u63a5\u89e6\uff0c\u6bd4\u8f83\u5c0f\u767d\u3002
\u901a\u8fc7\u5e01\u5b89\u8d2d\u4e70\u4e86 eth \uff0c\u63d0\u73b0\u5230\u94b1\u5305\u7684\u65f6\u5019\u8981\u9009\u62e9\u7f51\u7edc\uff0cERC20 \u624b\u7eed\u8d39\u592a\u8d35\u4e86\uff0c\u5982\u679c\u9009\u62e9 BEP20 \u7684\u8bdd\uff0c\u5728 ENS \u8d2d\u4e70\u57df\u540d\u7684\u65f6\u5019\uff0c\u80fd\u6b63\u5e38\u652f\u4ed8\u5417\uff1f" }, { "author": { "url": "member/Joker123456789", "name": "Joker123456789", "avatar": "https://cdn.v2ex.com/avatar/47d3/3395/482153_large.png?m=1676288679" }, "url": "t/898333", "title": "\u6709\u4e86\u8fd9\u4e2a\u5de5\u5177\u5305\uff0c\u7528 Java \u8c03\u7528\u667a\u80fd\u5408\u7ea6\u66f4\u52a0\u7b80\u4fbf\u4e86", "id": "t/898333", "date_published": "2022-11-27T12:34:11+00:00", "content_html": "

Magician-ContractsTools \u662f\u4e00\u4e2a\u7528\u4e8e\u8c03\u7528\u667a\u80fd\u5408\u7ea6\u7684\u5de5\u5177\u5305\uff0c\u4f60\u53ef\u4ee5\u975e\u5e38\u5bb9\u6613\u5730\u5728 Java \u7a0b\u5e8f\u4e2d\u8c03\u7528\u667a\u80fd\u5408\u7ea6\u8fdb\u884c\u67e5\u8be2\u548c\u5199\u5165\u64cd\u4f5c\u3002

\n

\u6709\u4e09\u4e2a\u5185\u7f6e\u7684\u6807\u51c6\u5408\u7ea6\u6a21\u677f\uff0c\u5206\u522b\u662f ERC20 \u3001ERC721 \u548c ERC1155 \uff0c\u5982\u679c\u4f60\u9700\u8981\u8c03\u7528\u8fd9\u4e09\u4e2a\u5408\u7ea6\u4e2d\u7684\u6807\u51c6\u51fd\u6570\uff0c\u53ef\u4ee5\u5e2e\u52a9\u4f60\u975e\u5e38\u5feb\u901f\u5730\u5b8c\u6210\u5de5\u4f5c\u3002\u9664\u4e86\u5185\u7f6e\u7684\u5408\u540c\u6a21\u677f\u5916\uff0c\u5982\u679c\u4f60\u9700\u8981\u8c03\u7528\u81ea\u5b9a\u4e49\u7684\u5408\u540c\u51fd\u6570\u4e5f\u662f\u5f88\u5bb9\u6613\u7684\uff0c\u4ee5\u540e\u6211\u4eec\u8fd8\u4f1a\u7ee7\u7eed\u589e\u52a0\u6807\u51c6\u6a21\u677f\u3002

\n

\u6b64\u5916\uff0c\u8fd8\u6709 InputData \u89e3\u7801\u548c ETH \u67e5\u8be2\u548c\u8f6c\u79fb\u7684\u5de5\u5177

\n

\u8ba1\u5212\u652f\u6301\u4e09\u79cd\u94fe\uff0cETH \uff08 BSC \u3001POLYGON \u7b49\uff09\u3001SOL \u548c TRON

\n

\u5bfc\u5165\u4f9d\u8d56

\n
<dependency>\n <groupId>com.github.yuyenews</groupId>\n <artifactId>Magician-ContractsTools</artifactId>\n <version>1.0.0</version>\n</dependency>\n\n<!-- This is the logging package, you must have it or the console will not see anything, any logging package that can bridge with slf4j is supported -->\n<dependency>\n <groupId>org.slf4j</groupId>\n <artifactId>slf4j-jdk14</artifactId>\n <version>1.7.12</version>\n</dependency>\n
\n

\u5408\u7ea6\u67e5\u8be2 \u4ee5\u53ca \u5199\u5165

\n
String privateKey = \"\"; // \u79c1\u94a5\nWeb3j web3j = Web3j.build(new HttpService(\"https://data-seed-prebsc-1-s1.binance.org:8545/\")); // \u94fe\u7684 RPC \u5730\u5740\nString cOntractAddress= \"\";\n\nEthContractUtil ethCOntractUtil= EthContractUtil.builder(web3j);\n\n// \u67e5\u8be2\nList<Type> result = ethContractUtil.select(\n contractAddress, // \u5408\u7ea6\u5730\u5740\n EthAbiCodecTool.getInputData(\n \"balanceOf\", // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u540d\u79f0\n new Address(toAddress) // \u65b9\u6cd5\u7684\u53c2\u6570\uff0c\u5982\u679c\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n ), // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u7684 inputData\n new TypeReference<Uint256>() {} // \u65b9\u6cd5\u7684\u8fd4\u56de\u7c7b\u578b\uff0c\u5982\u679c\u6709\u591a\u4e2a\u8fd4\u56de\u503c\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n );\n\n// \u5f80\u5408\u7ea6\u91cc\u5199\u5165\u6570\u636e\n// gasPrice \uff0cgasLimit \u4e24\u4e2a\u53c2\u6570\uff0c\u5982\u679c\u60f3\u7528\u9ed8\u8ba4\u503c\u53ef\u4ee5\u4e0d\u4f20\uff0c\u6216\u8005\u4f20 null\n// \u5982\u679c\u4e0d\u4f20\u7684\u8bdd\uff0c\u4e24\u4e2a\u53c2\u6570\u90fd\u5fc5\u987b\u4e0d\u4f20\uff0c\u8981\u4f20\u5c31\u4e00\u8d77\u4f20\uff0c \u5982\u679c\u8bbe\u7f6e\u4e3a null \u7684\u8bdd\uff0c\u53ef\u4ee5\u4e00\u4e2a\u4e3a null \uff0c\u4e00\u4e2a\u6709\u503c\nSendResultModel sendResultModel = ethContractUtil.sendRawTransaction(\n senderAddress, // \u8c03\u7528\u8005\u7684\u5730\u5740\n contractAddress, // \u5408\u7ea6\u5730\u5740\n privateKey, // senderAddress \u7684\u79c1\u94a5\n new BigInteger(\"1200000\"), // gasPrice \uff0c\u5982\u679c\u60f3\u7528\u9ed8\u8ba4\u503c \u53ef\u4ee5\u76f4\u63a5\u4f20 null \uff0c\u6216\u8005\u4e0d\u4f20\u8fd9\u4e2a\u53c2\u6570\n new BigInteger(\"800000\"), // gasLimit \uff0c\u5982\u679c\u60f3\u7528\u9ed8\u8ba4\u503c \u53ef\u4ee5\u76f4\u63a5\u4f20 null \uff0c\u6216\u8005\u4e0d\u4f20\u8fd9\u4e2a\u53c2\u6570\n EthAbiCodecTool.getInputData(\n \"transfer\", // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u540d\u79f0\n new Address(toAddress), // \u65b9\u6cd5\u7684\u53c2\u6570\uff0c\u5982\u679c\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n new Uint256(new BigInteger(\"1000000000000000000\")) // \u65b9\u6cd5\u7684\u53c2\u6570\uff0c\u5982\u679c\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n ) // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u7684 inputData\n );\n\nsendResultModel.getEthSendTransaction(); // \u53d1\u9001\u4ea4\u6613\u540e\u7684\u7ed3\u679c\nsendResultModel.getEthGetTransactionReceipt(); // \u4ea4\u6613\u6210\u529f\u4e0a\u94fe\u540e\u7684\u7ed3\u679c\n
\n

\u5408\u7ea6\u6a21\u677f

\n

\u76ee\u524d\u53ea\u6709\u4e09\u79cd\u6a21\u677f\uff0c\u540e\u9762\u4f1a\u7ee7\u7eed\u589e\u52a0\uff0c\u4e3a\u4e86\u8282\u7ea6\u7bc7\u5e45 \u8fd9\u91cc\u53ea\u5c55\u793a ERC20 \uff0c\u8be6\u60c5\u53ef\u4ee5\u8bbf\u95ee\u5b98\u7f51\u4e86\u89e3

\n

\u8c03\u7528 ERC20 \u5408\u7ea6

\n

\u67e5\u8be2

\n
// \u8c03\u7528\u5408\u7ea6\u7684 totalSupply \u51fd\u6570\nBigInteger total = erc20Contract.totalSupply();\n\n// \u8c03\u7528\u5408\u7ea6\u7684 balanceOf \u51fd\u6570\nBigInteger amount = erc20Contract.balanceOf(\"0xb4e32492E9725c3215F1662Cf28Db1862ed1EE84\");\n\n// \u8c03\u7528\u5408\u7ea6\u7684 allowance \u51fd\u6570\nBigInteger amount = erc20Contract.allowance(\"0xb4e32492E9725c3215F1662Cf28Db1862ed1EE84\", \"0x552115849813d334C58f2757037F68E2963C4c5e\");\n
\n

\u5199\u5165

\n
// \u8c03\u7528\u5408\u7ea6\u7684 transfer \u51fd\u6570\nSendResultModel sendResultModel = erc20Contract.transfer(\n \"0x552115849813d334C58f2757037F68E2963C4c5e\", // \u8f6c\u8d26\u63a5\u6536\u4eba\n new BigInteger(\"1000000000000000000\"), // \u8f6c\u8d26\u91d1\u989d\n \"0xb4e32492E9725c3215F1662Cf28Db1862ed1EE84\", // \u8c03\u7528\u8005\u7684\u5730\u5740\n \"\", // \u8c03\u7528\u8005\u7684\u79c1\u94a5\n null, // gasPrice \uff0c\u5982\u679c\u4f20 null \uff0c\u81ea\u52a8\u4f7f\u7528\u9ed8\u8ba4\u503c\n null // gasLimit \uff0c\u5982\u679c\u4f20 null \uff0c\u81ea\u52a8\u4f7f\u7528\u9ed8\u8ba4\u503c\n );\nsendResultModel.getEthSendTransaction(); // \u53d1\u9001\u4ea4\u6613\u540e\u7684\u7ed3\u679c\nsendResultModel.getEthGetTransactionReceipt(); // \u4ea4\u6613\u6210\u529f\u4e0a\u94fe\u540e\u7684\u7ed3\u679c\n\n// \u8c03\u7528\u5408\u7ea6\u7684 transferFrom \u51fd\u6570\nSendResultModel sendResultModel = erc20Contract.transferFrom(\n \"0xb4e32492E9725c3215F1662Cf28Db1862ed1EE84\", // \u8f6c\u8d26\u4ed8\u6b3e\u4eba\n \"0x552115849813d334C58f2757037F68E2963C4c5e\", // \u8f6c\u8d26\u63a5\u6536\u4eba\n new BigInteger(\"1000000000000000000\"), // \u8f6c\u8d26\u91d1\u989d\n \"0xb4e32492E9725c3215F1662Cf28Db1862ed1EE84\", // \u8c03\u7528\u8005\u7684\u5730\u5740\n \"\", // \u8c03\u7528\u8005\u7684\u79c1\u94a5\n null, // gasPrice \uff0c\u5982\u679c\u4f20 null \uff0c\u81ea\u52a8\u4f7f\u7528\u9ed8\u8ba4\u503c\n null // gasLimit \uff0c\u5982\u679c\u4f20 null \uff0c\u81ea\u52a8\u4f7f\u7528\u9ed8\u8ba4\u503c\n );\nsendResultModel.getEthSendTransaction(); // \u53d1\u9001\u4ea4\u6613\u540e\u7684\u7ed3\u679c\nsendResultModel.getEthGetTransactionReceipt(); // \u4ea4\u6613\u6210\u529f\u4e0a\u94fe\u540e\u7684\u7ed3\u679c\n\n// \u8c03\u7528\u5408\u7ea6\u7684 approve \u51fd\u6570\nSendResultModel sendResultModel = erc20Contract.approve(\n \"0x552115849813d334C58f2757037F68E2963C4c5e\", // \u88ab\u6388\u6743\u4eba\n new BigInteger(\"1000000000000000000\"), // \u6388\u6743\u91d1\u989d\n \"0xb4e32492E9725c3215F1662Cf28Db1862ed1EE84\", // \u8c03\u7528\u8005\u7684\u5730\u5740\n \"\", // \u8c03\u7528\u8005\u7684\u79c1\u94a5\n null, // gasPrice \uff0c\u5982\u679c\u4f20 null \uff0c\u81ea\u52a8\u4f7f\u7528\u9ed8\u8ba4\u503c\n null // gasLimit \uff0c\u5982\u679c\u4f20 null \uff0c\u81ea\u52a8\u4f7f\u7528\u9ed8\u8ba4\u503c\n );\nsendResultModel.getEthSendTransaction(); // \u53d1\u9001\u4ea4\u6613\u540e\u7684\u7ed3\u679c\nsendResultModel.getEthGetTransactionReceipt(); // \u4ea4\u6613\u6210\u529f\u4e0a\u94fe\u540e\u7684\u7ed3\u679c\n
\n

InputData \u7f16\u89e3\u7801

\n
// \u7f16\u7801\nString inputData = EthAbiCodecTool.getInputData(\n \"transfer\", // \u65b9\u6cd5\u540d\n new Address(toAddress), // \u53c2\u6570 1\n new Uint256(new BigInteger(\"1000000000000000000\")) // \u53c2\u6570 2 \uff0c\u5982\u679c\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\n );\n\n// \u89e3\u7801\nList<Type> result = EthAbiCodecTool.decoderInputData(\n \"0x\" + inputData.substring(10), // \u53bb\u9664\u65b9\u6cd5\u7b7e\u540d\u7684 inputData\n new TypeReference<Address>() {}, // \u88ab\u7f16\u7801\u7684\u65b9\u6cd5\u7684\u53c2\u6570 1 \u7c7b\u578b\n new TypeReference<Uint256>() {} // \u88ab\u7f16\u7801\u7684\u65b9\u6cd5\u7684\u53c2\u6570 2 \u7c7b\u578b\uff0c \u5982\u679c\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\n );\n\nfor(Type type : result){\n System.out.println(type.getValue());\n}\n\n// \u83b7\u53d6\u65b9\u6cd5\u7b7e\u540d\uff0c\u5176\u5b9e\u5c31\u662f inputData \u7684\u524d\u5341\u4f4d\nString functiOnCode= EthAbiCodecTool.getFunAbiCode(\n \"transfer\", // \u65b9\u6cd5\u540d\n new Address(toAddress), // \u53c2\u6570 1 \uff0c\u503c\u968f\u610f\u4f20\uff0c\u53cd\u6b63\u6211\u4eec\u8981\u7684\u65b9\u6cd5\u7b7e\u540d\uff0c\u4e0d\u662f\u5b8c\u6574\u7684 inputData\n new Uint256(new BigInteger(\"1000000000000000000\")) // \u53c2\u6570 2 \uff0c\u503c\u968f\u610f\u4f20\uff0c\u53cd\u6b63\u6211\u4eec\u8981\u7684\u65b9\u6cd5\u7b7e\u540d\uff0c\u4e0d\u662f\u5b8c\u6574\u7684 inputData \uff0c\u5982\u679c\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\n );\n
\n

\u4e3b\u94fe\u5e01\u67e5\u8be2\u4ee5\u53ca\u8f6c\u8d26

\n
String privateKey = \"\"; // \u79c1\u94a5\nWeb3j web3j = Web3j.build(new HttpService(\"https://data-seed-prebsc-1-s1.binance.org:8545/\")); // \u94fe\u7684 RPC \u5730\u5740\n\n// \u8fd9\u79cd\u65b9\u5f0f\u662f\u5355\u4f8b\u7684\nEthHelper ethHelper = MagicianWeb3.getEthBuilder().getEth(web3j);\n// \u5982\u679c\u4f60\u60f3\u521b\u5efa\u591a\u4e2a EthHelper \u5bf9\u8c61\uff0c\u53ef\u4ee5\u7528\u8fd9\u79cd\u65b9\u5f0f\nEthHelper ethHelper = EthHelper.builder(web3j);\n\n// \u4f59\u989d\u67e5\u8be2\nBigInteger balance = ethHelper.balanceOf(fromAddress);\n\n// \u8f6c\u8d26\nTransactionReceipt transactiOnReceipt= ethHelper.transfer(\n toAddress,\n privateKey, \n BigDecimal.valueOf(1),\n Convert.Unit.ETHER\n);\n
\n

\u5b98\u7f51\u5730\u5740

\n

https://magician-io.com

\n" }, { "author": { "url": "member/Joker123456789", "name": "Joker123456789", "avatar": "https://cdn.v2ex.com/avatar/47d3/3395/482153_large.png?m=1676288679" }, "url": "t/897946", "title": "Magician-Web3 1.0.5 \u53d1\u5e03\u5566\uff0c\u52a0\u5165\u4e86\u8d1f\u8f7d\u5747\u8861 \u548c \u91cd\u8bd5\u7b56\u7565", "id": "t/897946", "date_published": "2022-11-25T11:18:18+00:00", "content_html": "

Magician-Web3 \u662f\u4e00\u4e2a\u533a\u5757\u94fe\u5f00\u53d1\u5de5\u5177\u5305\u3002\u5b83\u7531\u4e24\u4e2a\u529f\u80fd\u7ec4\u6210\u3002\u4e00\u4e2a\u662f\u626b\u63cf\u533a\u5757\u94fe\uff0c\u6839\u636e\u5f00\u53d1\u8005\u7684\u9700\u8981\u76d1\u63a7\u4ea4\u6613\u3002\u53e6\u4e00\u4e2a\u662f\u5bf9 web3j \u7684\u4e00\u4e9b\u4e8c\u6b21\u6253\u5305\uff0c\u53ef\u4ee5\u51cf\u5c11\u5f00\u53d1\u8005\u5728\u4e00\u4e9b\u5e38\u89c1\u573a\u666f\u4e0b\u7684\u5de5\u4f5c\u91cf\u3002\u5b83\u8ba1\u5212\u652f\u6301\u4e09\u79cd\u94fe\uff0cETH \uff08 BSC \u3001POLYGAN \u7b49\uff09\u3001SOL \u548c TRON

\n

\u672c\u6b21\u66f4\u65b0\u7684\u70b9

\n
    \n
  1. \n

    \u52a0\u5165\u4e86\u8d1f\u8f7d\u5747\u8861\uff0c\u53ea\u8981\u914d\u7f6e\u591a\u4e2a RPC URL \u5373\u53ef\u81ea\u52a8\u8f6e\u8be2\uff0c\u53ef\u4ee5\u5c06\u6d41\u91cf\u5206\u6563\u7ed9\u591a\u4e2a\u8282\u70b9\uff0c\u4e0d\u7528\u4e00\u76f4\u76ef\u7740\u4e00\u4e2a\u8282\u70b9 \u201c\u7978\u5bb3\u4e86\u201d

    \n
  2. \n
  3. \n

    \u52a0\u5165\u4e86\u91cd\u8bd5\u7b56\u7565\uff0c\u5f53\u51fa\u73b0\u4e86\u67d0\u4e9b\u610f\u5916\u7684\u539f\u56e0 \u5bfc\u81f4\u533a\u5757\u88ab\u8df3\u8fc7\u626b\u63cf\uff0c\u90a3\u4e48\u88ab\u8df3\u8fc7\u7684\u533a\u5757\u9ad8\u5ea6\u5c06\u8fdb\u5165\u91cd\u8bd5\u7b56\u7565\uff0c\u4f60\u53ef\u4ee5\u81ea\u5df1\u8fdb\u884c\u5904\u7406

    \n
  4. \n
  5. \n

    \u4fee\u6539\u4e86\u4e00\u70b9\u70b9\u7ec6\u8282

    \n
  6. \n
\n

\u8d1f\u8f7d\u5747\u8861

\n

\u76f4\u63a5\u8bbe\u7f6e\u591a\u4e2a rpc \u5730\u5740\u5373\u53ef

\n
MagicianBlockchainScan.create()\n .setRpcUrl(\n // \u53ef\u4ee5\u8bbe\u7f6e 1 \u5230 n \u4e2a rpc \u5730\u5740\u4e86\uff0c\u8d85\u8fc7\u4e00\u4e2a\u5c06\u81ea\u52a8\u8f6e\u8be2\u4f7f\u7528\n EthRpcInit.create()\n .addRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545\")\n .addRpcUrl(\"https://data-seed-prebsc-2-s1.binance.org:8545\")\n .addRpcUrl(\"https://data-seed-prebsc-1-s2.binance.org:8545\")\n )\n .setScanPeriod(1000)\n .setBeginBlockNumber(BlockEnums.LAST_BLOCK_NUMBER.getValue())\n .addEthMonitorEvent(new EventOne())\n .addEthMonitorEvent(new EventThree())\n .setRetryStrategy(new EthRetry())\n .start();\n
\n

\u91cd\u8bd5\u7b56\u7565

\n

\u5728\u7b26\u5408\u4ee5\u4e0b\u4e24\u4e2a\u6761\u4ef6\u65f6\uff0c\u4f1a\u89e6\u53d1\u91cd\u8bd5\u7b56\u7565\uff0c\u4e24\u4e2a\u6761\u4ef6\u5fc5\u987b\u5168\u90fd\u7b26\u5408 \u624d\u4f1a\u89e6\u53d1\u91cd\u8bd5

\n
    \n
  1. \n

    \u5f53\u524d\u6b63\u5728\u626b\u63cf\u7684\u5757\u9ad8 \u662f\u7a7a\u7684\uff08\u5757\u4e0d\u5b58\u5728 \u6216\u8005 \u5757\u91cc\u9762\u6ca1\u4ea4\u6613\uff09

    \n
  2. \n
  3. \n

    \u5f53\u524d\u6b63\u5728\u626b\u63cf\u7684\u5757\u9ad8 < \u94fe\u4e0a\u7684\u6700\u65b0\u5757\u9ad8

    \n
  4. \n
\n

\u5f53\u4e0a\u9762\u4e24\u4e2a\u6761\u4ef6\u540c\u65f6\u7b26\u5408\u7684\u65f6\u5019\uff0c\u626b\u63cf\u4efb\u52a1\u4f1a\u8df3\u8fc7\u8fd9\u4e2a\u5757\uff0c\u7136\u540e\u7ee7\u7eed\u626b\u63cf\u4e0b\u4e00\u4e2a\u5757\uff0c\u540c\u65f6 \u91cd\u8bd5\u7b56\u7565\u4f1a\u6536\u5230\u88ab\u8df3\u8fc7\u7684\u5757\u9ad8\uff0c \u4f60\u53ef\u4ee5\u5728\u91cd\u8bd5\u7b56\u7565\u91cc \u81ea\u5df1\u5904\u7406

\n

\u521b\u5efa\u4e00\u4e2a\u91cd\u8bd5\u7b56\u7565

\n
public class EthRetry implements RetryStrategy {\n\n @Override\n public void retry(BigInteger blockNumber) {\n \n }\n}\n
\n

\u5c06\u91cd\u8bd5\u7b56\u7565\u6dfb\u52a0\u5230\u626b\u63cf\u4efb\u52a1\u4e2d

\n
MagicianBlockchainScan.create()\n .setRetryStrategy(new EthRetry())// \u8c03\u7528\u8fd9\u4e2a\u65b9\u6cd5\u6dfb\u52a0\n .start();\n
\n

\u9700\u8981\u6ce8\u610f\u7ebf\u7a0b\u6570\u91cf\u7684\u914d\u7f6e

\n

\u5982\u679c\u4f60\u6b64\u65f6\u5f00\u4e86\u4e00\u4e2a\u626b\u5757\u4efb\u52a1 + \u4e00\u4e2a \u91cd\u8bd5\u7b56\u7565\uff0c\u90a3\u4e48\u9700\u8981\u5360\u7528\u4e24\u4e2a\u7ebf\u7a0b\uff0c\u6240\u4ee5\u53c2\u6570\u5fc5\u987b\u4f20 2

\n
// \u521d\u59cb\u5316\u7ebf\u7a0b\u6c60\uff0c\u6838\u5fc3\u7ebf\u7a0b\u6570\u5fc5\u987b >= \u626b\u5757\u7684\u4efb\u52a1\u6570\u91cf + \u91cd\u8bd5\u7b56\u7565\u7684\u6570\u91cf\nEventThreadPool.init(2);\n
\n

\u7ec6\u8282\u8c03\u6574

\n
    \n
  1. \n

    \u626b\u63cf\u9891\u7387\u6700\u4f4e\u53ef\u4ee5\u8bbe\u7f6e 500 \u6beb\u79d2

    \n
  2. \n
  3. \n

    \u8bbe\u7f6e RPC \u5730\u5740\u7684 \u4f20\u53c2\u7c7b\u578b\u53d8\u4e86

    \n
  4. \n
  5. \n

    \u7531\u4e8e\u7b2c\u4e8c\u70b9\u7684\u4f18\u5316\uff0c\u73b0\u5728\u53ef\u4ee5\u6839\u636e RPC \u5730\u5740\u7684\u7c7b\u578b\u6765\u5224\u65ad\u4f60\u8981\u626b\u63cf\u4ec0\u4e48\u94fe\u4e86\uff0c\u6240\u4ee5\u53bb\u9664\u4e86 ChainType \u7684\u8bbe\u7f6e

    \n
  6. \n
\n
MagicianBlockchainScan.create()\n .setRpcUrl(// \u8fd9\u91cc\u53d1\u751f\u4e86\u6539\u53d8\n EthRpcInit.create()\n .addRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545\")\n .addRpcUrl(\"https://data-seed-prebsc-2-s1.binance.org:8545\")\n .addRpcUrl(\"https://data-seed-prebsc-1-s2.binance.org:8545\")\n )\n .setScanPeriod(1000)// \u8fd9\u4e2a\u53c2\u6570\u6700\u4f4e\u53ef\u4ee5\u8bbe\u7f6e\u4e3a 500 \u4e86\n .setBeginBlockNumber(BlockEnums.LAST_BLOCK_NUMBER.getValue())\n .addEthMonitorEvent(new EventOne())\n .addEthMonitorEvent(new EventThree())\n .setRetryStrategy(new EthRetry())\n .start();\n
\n

\u53ef\u4ee5\u8bbf\u95ee\u5b98\u7f51\u4e86\u89e3\u66f4\u591a\uff1ahttps://magician-io.com

\n" }, { "author": { "url": "member/Joker123456789", "name": "Joker123456789", "avatar": "https://cdn.v2ex.com/avatar/47d3/3395/482153_large.png?m=1676288679" }, "url": "t/897393", "title": "Magician-Web3 1.0.3 \u53d1\u5e03\u5566\uff0c\u53ef\u4ee5\u6839\u636e inputData \u91cc\u7684\u6570\u636e \u8fdb\u884c\u76d1\u63a7\u4e86", "id": "t/897393", "date_published": "2022-11-23T08:56:34+00:00", "content_html": "

Magician-Web3 \u662f\u4e00\u4e2a\u533a\u5757\u94fe\u5f00\u53d1\u5de5\u5177\u5305\u3002\u5b83\u7531\u4e24\u4e2a\u529f\u80fd\u7ec4\u6210\u3002\u4e00\u4e2a\u662f\u626b\u63cf\u533a\u5757\u94fe\uff0c\u6839\u636e\u5f00\u53d1\u8005\u7684\u9700\u8981\u76d1\u63a7\u4ea4\u6613\u3002\u53e6\u4e00\u4e2a\u662f\u5bf9 web3j \u7684\u4e00\u4e9b\u4e8c\u6b21\u6253\u5305\uff0c\u53ef\u4ee5\u51cf\u5c11\u5f00\u53d1\u8005\u5728\u4e00\u4e9b\u5e38\u89c1\u573a\u666f\u4e0b\u7684\u5de5\u4f5c\u91cf\u3002\u5b83\u8ba1\u5212\u652f\u6301\u4e09\u79cd\u94fe\uff0cETH \uff08 BSC \u3001POLYGAN \u7b49\uff09\u3001SOL \u548c TRON

\n

\u672c\u6b21\u66f4\u65b0\u7684\u70b9

\n
    \n
  1. \n

    \u65b0\u589e InputDataFilter \uff0c\u53ef\u4ee5\u66f4\u52a0\u7cbe\u51c6\u7684\u6839\u636e inputData \u8fdb\u884c\u76d1\u63a7\u4e86

    \n
  2. \n
  3. \n

    \u6539\u53d8\u626b\u63cf\u6a21\u5f0f\uff0c\u73b0\u5728\u53ea\u9700\u8981\u8bbe\u5b9a\u4e00\u4e2a\u8d77\u59cb\u5757\u5c31\u597d\u4e86\uff0c\u7a0b\u5e8f\u4f1a\u6309\u7167\u4e00\u5b9a\u7684\u9891\u7387\u4ece\u8d77\u59cb\u5757\u5f80\u540e\u626b\u63cf\uff0c\u4e0d\u518d\u9700\u8981\u8bbe\u7f6e\u6bcf\u8f6e\u626b\u63cf\u5757\u6570

    \n
  4. \n
  5. \n

    Web3j \u7684\u6269\u5c55\u90e8\u5206\uff0c\u4fee\u6539\u4e86\u79c1\u94a5\u7684\u4f20\u5165\u65b9\u5f0f

    \n
  6. \n
\n

InputDataFilter

\n

\u5982\u679c\u4f60\u60f3\u76d1\u63a7\uff0c\u67d0\u5408\u7ea6\u5185\u7684\u67d0\u51fd\u6570 \u88ab\u8c03\u7528\u7684\u4ea4\u6613

\n
public EthMonitorFilter ethMonitorFilter() {\n return EthMonitorFilter.builder()\n .setToAddress(\"0x552115849813d334C58f2757037F68E2963C4c5e\") // \u5408\u7ea6\u5730\u5740\n .setInputDataFilter( // \u6839\u636e inputData \u7b5b\u9009\n InputDataFilter.create()\n .setFunctionCode(\"0xadasasdf\") // \u88ab\u8c03\u7528\u7684\u51fd\u6570\u7f16\u7801\uff08 inputData \u524d\u5341\u4f4d\uff09\n );\n}\n
\n

\u5982\u679c \u6709\u4e00\u4e2a\u5408\u7ea6 [0x552115849813d334C58f2757037F68E2963C4c5e], \u91cc\u9762\u6709\u4e00\u4e2a\u51fd\u6570\u662f transferFrom (address from, address to, uint256 amount)

\n

\u4f60\u60f3 \u5b9e\u73b0\u4e00\u4e2a\u76d1\u63a7\uff1a\u5982\u679c\u6709\u4eba\u7528\u8fd9\u4e2a\u5408\u7ea6\u91cc\u7684\u8fd9\u4e2a\u51fd\u6570\uff0c\u5c06\u4ee3\u5e01\u8f6c\u7ed9 [0x552115849813d334C58f2757037F68E2963C4c5e] \u65f6\uff0c\u5c31\u89e6\u53d1 Monitor \u4e8b\u4ef6\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u8fd9\u6837\u5199

\n
public EthMonitorFilter ethMonitorFilter() {\n return EthMonitorFilter.builder()\n .setToAddress(\"0x552115849813d334C58f2757037F68E2963C4c5e\") // \u5408\u7ea6\u5730\u5740\n .setInputDataFilter( // \u6839\u636e inputData \u7b5b\u9009\n InputDataFilter.create()\n .setFunctionCode(ERC20.TRANSFER_FROM.getFunctionCode()) // \u88ab\u8c03\u7528\u7684\u51fd\u6570\u7f16\u7801\uff08 inputData \u524d\u5341\u4f4d\uff09\n .setTypeReferences( // \u6b64\u65b9\u6cd5\u7684\u53c2\u6570\u5217\u8868\uff08\u4ec5\u7c7b\u578b\uff09\n new TypeReference<Address>(){}, // \u7b2c\u4e00\u4e2a\u53c2\u6570\u7684\u7c7b\u578b\n new TypeReference<Address>(){}, // \u7b2c\u4e8c\u4e2a\u53c2\u6570\u7684\u7c7b\u578b\n new TypeReference<Uint256>(){} // \u7b2c\u4e09\u4e2a\u53c2\u6570\u7684\u7c7b\u578b\n )\n .setValue(null, \"0x552115849813d334C58f2757037F68E2963C4c5e\", null)// \u7b5b\u9009\u7b2c\u4e8c\u4e2a\u53c2\u6570\uff08 to \uff09 = 0x552115849813d334C58f2757037F68E2963C4c5e\n );\n}\n
\n

\u53ea\u9700\u8981\u8bbe\u7f6e\u8d77\u59cb\u5757

\n
MagicianBlockchainScan.create()\n .setRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545/\")\n .setChainType(ChainType.ETH)\n .setScanPeriod(5000) \n .setScanSize(1000) // \u8fd9\u4e2a\u914d\u7f6e\u9879\u5df2\u7ecf\u88ab\u5f7b\u5e95\u79fb\u9664\u4e86\uff0c\u4e0d\u518d\u9700\u8981\u914d\u7f6e\u4e86\n .setBeginBlockNumber(BigInteger.valueOf(24318610))\n .addEthMonitorEvent(new EventOne())\n .addEthMonitorEvent(new EventTwo())\n .addEthMonitorEvent(new EventThree())\n .start();\n
\n

\u626b\u63cf\u7684\u903b\u8f91\u6362\u6210\u4e86\u4ece\u8d77\u59cb\u5757 \u6309\u7167\u4e00\u5b9a\u7684\u9891\u7387 \u4e00\u5757\u4e00\u5757\u7684\u5f80\u540e\u626b\uff0c\u4e0d\u518d\u662f\u4ee5\u524d\u7684 \u6bcf\u8f6e\u626b\u63cf\u591a\u5c11\u5757\u4e86

\n

Web3j \u7684\u6269\u5c55\u90e8\u5206\uff0c\u4fee\u6539\u4e86\u79c1\u94a5\u7684\u4f20\u5165\u65b9\u5f0f

\n

\u8fd9\u79cd\u65b9\u5f0f\u5df2\u7ecf\u6dd8\u6c70\u4e86

\n
EthHelper ethHelper = MagicianWeb3.getEthBuilder().getEth(web3j, privateKey);\n\nEthContract ethCOntract= MagicianWeb3.getEthBuilder().getEthContract(web3j, privateKey);\n
\n

\u73b0\u5728\u6362\u6210\u4e86\uff0c\u5728\u8c03\u7528\u65b9\u6cd5\u65f6 \u624d\u4f20\u5165\uff0c\u76ee\u7684\u662f\u4e3a\u4e86\u89e3\u51b3\uff1a\u5982\u679c\u6709\u591a\u4e2a\u5730\u5740 \u9700\u8981\u53d1\u8d77\u4ea4\u6613\uff0c\u53ef\u4ee5\u53ea\u7528\u4e00\u4e2a\u5bf9\u8c61\u89e3\u51b3

\n
// \u8f6c\u8d26\nTransactionReceipt transactiOnReceipt= ethHelper.transfer(\n toAddress,\n privateKey, // \u8c03\u7528\u65b9\u6cd5\u65f6\u4f20\u5165\u79c1\u94a5\n BigDecimal.valueOf(1),\n Convert.Unit.ETHER\n);\n\n\n// \u5f80\u5408\u7ea6\u91cc\u5199\u5165\u6570\u636e\nSendResultModel sendResultModel = ethContract.sendRawTransaction(\n fromAddress, \n contractAddress, \n privateKey, // \u8c03\u7528\u65b9\u6cd5\u65f6\u4f20\u5165\u79c1\u94a5\n new BigInteger(\"1200000\"),\n new BigInteger(\"800000\"),\n ethAbiCodec.getInputData(\n \"transfer\",\n new Address(toAddress),\n new Uint256(new BigInteger(\"1000000000000000000\"))\n )\n );\n
\n

\u53ef\u4ee5\u8bbf\u95ee\u5b98\u7f51\u4e86\u89e3\u66f4\u591a\uff1ahttps://magician-io.com

\n" }, { "author": { "url": "member/Joker123456789", "name": "Joker123456789", "avatar": "https://cdn.v2ex.com/avatar/47d3/3395/482153_large.png?m=1676288679" }, "url": "t/896187", "title": "Magician-Web3 1.0.2 \u53d1\u5e03\uff0c\u652f\u6301\u914d\u7f6e\u4ee3\u7406", "id": "t/896187", "date_published": "2022-11-18T05:11:27+00:00", "content_html": "

Magician-web3 \u662f\u4e00\u4e2a\u533a\u5757\u94fe\u5f00\u53d1\u5de5\u5177\u5305\u3002\u5b83\u7531\u4e24\u4e2a\u529f\u80fd\u7ec4\u6210\u3002\u4e00\u4e2a\u662f\u626b\u63cf\u533a\u5757\u94fe\uff0c\u6839\u636e\u5f00\u53d1\u8005\u7684\u9700\u8981\u76d1\u63a7\u4ea4\u6613\u3002\u53e6\u4e00\u4e2a\u662f\u5bf9 web3j \u7684\u4e00\u4e9b\u4e8c\u6b21\u5c01\u88c5\uff0c\u53ef\u4ee5\u51cf\u5c11\u5f00\u53d1\u8005\u5728\u4e00\u4e9b\u5e38\u89c1\u573a\u666f\u4e0b\u7684\u5de5\u4f5c\u91cf\u3002\u5b83\u8ba1\u5212\u652f\u6301\u4e09\u79cd\u94fe\uff0cETH \uff08 BSC \u3001POLYGAN \u7b49\uff09\u3001SOL \u548c TRON

\n

\u4ed6\u4e0d\u9700\u8981\u4f9d\u8d56 Magician \uff0c\u53ef\u4ee5\u5b8c\u5168\u7684\u72ec\u7acb\u4f7f\u7528\uff1ahttps://magician-io.com

\n
\n

\u672c\u6b21\u66f4\u65b0\u4e3b\u8981\u662f\u6dfb\u52a0\u4e86\u4e00\u4e2a\u4ee3\u7406\u8bbe\u7f6e\uff0c\u53ef\u4ee5\u66f4\u65b9\u4fbf\u7684\u8bbf\u95ee\u4e00\u4e9b\u53d7\u4fdd\u62a4\u7684 rpc \u5730\u5740

\n

\u914d\u7f6e\u65b9\u6cd5

\n

\u4e00\u5171\u63d0\u4f9b\u4e86 4 \u79cd\u65b9\u5f0f\u6765\u8bbe\u7f6e\u4ee3\u7406

\n

\u4e00\u3001\u76f4\u63a5\u6dfb\u52a0\u4e00\u4e2a Proxy \u5bf9\u8c61

\n
MagicianBlockchainScan.create()\n .setRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545/\",\n new Proxy(Proxy.Type.HTTP, new InetSocketAddress(\"127.0.0.1\", 4780))) \n .start();\n
\n

\u4e8c\u3001\u6709\u4e9b\u4ee3\u7406\u670d\u52a1\u9700\u8981\u9274\u6743\uff0c\u53ef\u4ee5\u4f7f\u7528\u8fd9\u79cd\u65b9\u6cd5\u8bbe\u7f6e\u7528\u6237\u540d\u548c\u5bc6\u7801

\n
MagicianBlockchainScan.create()\n .setRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545/\",\n new Proxy(Proxy.Type.HTTP, new InetSocketAddress(\"127.0.0.1\", 4780)),\n (Route route, Response response) -> {\n\n //\u8bbe\u7f6e\u4ee3\u7406\u670d\u52a1\u5668\u8d26\u53f7\u5bc6\u7801\n String credential = Credentials.basic(\"\u7528\u6237\u540d\", \"\u5bc6\u7801\");\n return response.request().newBuilder()\n .header(\"Proxy-Authorization\", credential)\n .build();\n }\n )\n
\n

\u4e09\u3001\u76f4\u63a5\u4f20\u5165 HttpService

\n
// \u8fd9\u79cd\u65b9\u6cd5 \u53ef\u5b9a\u5236\u5316\u6700\u9ad8\uff0c\u57fa\u672c\u4e0a\u5c31\u662f web3j \u672c\u6765\u7684\u4f7f\u7528\u65b9\u5f0f\nMagicianBlockchainScan.create()\n .setRpcUrl(new HttpService(\"\")) \n .start();\n
\n

\u56db\u3001\u4f20\u5165 OkhttpClient

\n
// \u8fd9\u79cd\u65b9\u6cd5 \u53ef\u5b9a\u5236\u5316\u7a0b\u5ea6\u4e5f\u975e\u5e38\u9ad8\uff0c\u57fa\u672c\u4e0a\u5c31\u662f\u4f7f\u7528 okHttp \u8bbf\u95ee \u533a\u5757\u94fe\u8282\u70b9\u4e86\nOkHttpClient okHttpClient = xxxxxx;\nMagicianBlockchainScan.create()\n .setRpcUrl(okHttpClient) \n .start();\n
\n" }, { "author": { "url": "member/Joker123456789", "name": "Joker123456789", "avatar": "https://cdn.v2ex.com/avatar/47d3/3395/482153_large.png?m=1676288679" }, "url": "t/892943", "title": "\u5927\u5bb6\u597d\uff0c\u6211\u5f00\u53d1\u4e86\u4e00\u4e2a\u626b\u5757\u7684 \u5de5\u5177\u5305\uff0c\u53ef\u4ee5\u7528\u6765\u65b9\u4fbf\u7684\u76d1\u542c \u4ea4\u6613\u52a8\u6001", "id": "t/892943", "date_published": "2022-11-05T09:49:06+00:00", "content_html": "

\u5f00\u53d1\u8bed\u8a00\u662f java \uff0c\u5e95\u5c42\u4f9d\u8d56\u4e86 Web3J \uff0c \u5e9f\u8bdd\u4e0d\u591a\u8bf4\uff0c\u76f4\u63a5\u4e0a\u793a\u4f8b

\n

\u5f15\u5165\u4f9d\u8d56

\n
<dependency>\n <groupId>com.github.yuyenews</groupId>\n <artifactId>Magician-web3</artifactId>\n <version>1.0.0</version>\n</dependency>\n\n<!-- This is the logging package, you must have it or the console will not see anything, any logging package that can bridge with slf4j is supported -->\n<dependency>\n <groupId>org.slf4j</groupId>\n <artifactId>slf4j-jdk14</artifactId>\n <version>1.7.12</version>\n</dependency>\n
\n

\u521b\u5efa\u76d1\u542c\u5668

\n

\u76d1\u542c\u5668 \u53ef\u4ee5\u521b\u5efa\u591a\u4e2a\uff0c\u6839\u636e\u4f60\u7684\u9700\u6c42 \u5206\u522b\u8bbe\u7f6e\u76d1\u542c\u6761\u4ef6

\n
/**\n * \u521b\u5efa\u4e00\u4e2a\u7c7b\uff0c\u5b9e\u73b0 EthMonitorEvent \u63a5\u53e3 \u5373\u53ef\n */\npublic class EventDemo implements EthMonitorEvent {\n\n /**\n * \u7b5b\u9009\u6761\u4ef6\uff0c\u5982\u679c\u9047\u5230\u4e86\u7b26\u5408\u6761\u4ef6\u7684\u4ea4\u6613\uff0c\u4f1a\u81ea\u52a8\u89e6\u53d1 call \u65b9\u6cd5\n * \u8fd9\u4e9b\u6761\u4ef6\u90fd\u662f \u5e76\u4e14\u7684\u5173\u7cfb\uff0c\u5fc5\u987b\u8981\u540c\u65f6\u6ee1\u8db3\u624d\u884c\n * \u5982\u679c\u4e0d\u60f3\u6839\u636e\u67d0\u4e2a\u6761\u4ef6\u7b5b\u9009\uff0c\u76f4\u63a5\u4e0d\u7ed9\u90a3\u4e2a\u6761\u4ef6\u8bbe\u7f6e\u503c\u5c31\u597d\u4e86\n * \u8fd9\u4e2a\u65b9\u6cd5\u5982\u679c\u4e0d\u5b9e\u73b0\uff0c\u6216\u8005\u8fd4\u56de null \uff0c \u90a3\u4e48\u5c31\u4ee3\u8868\u76d1\u542c\u4efb\u610f\u4ea4\u6613\n */\n @Override\n public EthMonitorFilter ethMonitorFilter() {\n return EthMonitorFilter.builder()\n .setFromAddress(\"0x131231249813d334C58f2757037F68E2963C4crc\") // \u7b5b\u9009 fromAddress \u53d1\u9001\u7684\u4ea4\u6613\n .setToAddress(\"0x552115849813d334C58f2757037F68E2963C4c5e\") // \u7b5b\u9009 toAddress \u6216 \u5408\u7ea6\u5730\u5740 \u6536\u5230\u7684\u4ea4\u6613\n .setMinValue(BigInteger.valueOf(1)) // \u7b5b\u9009\u53d1\u9001\u7684\u4e3b\u94fe\u5e01\u6570\u91cf >= minValue \u7684\u4ea4\u6613\n .setMaxValue(BigInteger.valueOf(10)) // \u7b5b\u9009\u53d1\u9001\u7684\u4e3b\u94fe\u5e01\u6570\u91cf <= maxValue \u7684\u4ea4\u6613\n .setFunctionCode(\"0xasdas123\"); // \u7b5b\u9009\u8c03\u7528\u5408\u7ea6\u5185 \u67d0\u65b9\u6cd5 \u7684\u4ea4\u6613\n }\n\n /**\n * \u5982\u679c\u9047\u5230\u4e86\u7b26\u5408\u4e0a\u9762\u6761\u4ef6\u7684\u4ea4\u6613\uff0c\u5c31\u4f1a\u89e6\u53d1\u8fd9\u4e2a\u65b9\u6cd5\n * transactionModel.getEthTransactionModel() \u662f\u4e00\u4e2a\u4ea4\u6613\u5bf9\u8c61\uff0c\u5185\u90e8\u5305\u542b hash \uff0cvalue \uff0cfrom \uff0cto \u7b49 \u6240\u6709\u7684\u6570\u636e\n */\n @Override\n public void call(TransactionModel transactionModel) {\n String template = \"EventOne \u626b\u63cf\u5230\u4e86, hash:{0}, from:{1}, to: {2}, input: {3}\";\n template = template.replace(\"{0}\", transactionModel.getEthTransactionModel().getBlockHash());\n template = template.replace(\"{1}\", transactionModel.getEthTransactionModel().getFrom());\n template = template.replace(\"{2}\", transactionModel.getEthTransactionModel().getTo());\n template = template.replace(\"{3}\", transactionModel.getEthTransactionModel().getInput());\n\n System.out.println(template);\n }\n}\n\n
\n

\u5f00\u542f\u4e00\u4e2a\u626b\u5757\u4efb\u52a1

\n
\n// \u521d\u59cb\u5316\u7ebf\u7a0b\u6c60\uff0c\u6838\u5fc3\u7ebf\u7a0b\u6570\u5fc5\u987b >= \u626b\u5757\u7684\u4efb\u52a1\u6570\u91cf\uff0c\u5efa\u8bae\u7b49\u4e8e\u626b\u5757\u7684\u4efb\u52a1\u6570\u91cf\nEventThreadPool.init(1);\n\n// \u5f00\u542f\u4e00\u4e2a\u626b\u5757\u4efb\u52a1\uff0c\u5982\u679c\u4f60\u60f3\u626b\u63cf\u591a\u4e2a\u94fe\uff0c\u90a3\u4e48\u76f4\u63a5\u62f7\u8d1d\u8fd9\u6bb5\u4ee3\u7801\uff0c\u5e76\u4fee\u6539\u914d\u7f6e\u5373\u53ef\nMagicianBlockchainScan.create()\n .setRpcUrl(\"https://data-seed-prebsc-1-s1.binance.org:8545/\") // \u8282\u70b9\u7684 RPC \u5730\u5740\n .setChainType(ChainType.ETH) // \u8981\u626b\u63cf\u7684\u94fe\uff08\u5982\u679c\u8bbe\u7f6e\u6210 ETH \uff0c\u90a3\u4e48\u53ef\u4ee5\u626b\u63cf BSC, POLYGAN \u7b49\u5176\u4ed6\u4efb\u610f \u4ee5\u592a\u574a\u6807\u51c6\u7684\u94fe\uff09\n .setScanPeriod(5000) // \u6bcf\u8f6e\u626b\u63cf\u7684\u95f4\u9694\n .setScanSize(1000) // \u6bcf\u8f6e\u626b\u63cf\u7684\u5757\u6570\n .setBeginBlockNumber(BigInteger.valueOf(24318610)) // \u4ece\u54ea\u4e2a\u5757\u9ad8\u5f00\u59cb\u626b\u63cf\n .addEthMonitorEvent(new EventOne()) // \u6dfb\u52a0 \u76d1\u542c\u4e8b\u4ef6\n .addEthMonitorEvent(new EventTwo()) // \u6dfb\u52a0 \u76d1\u542c\u4e8b\u4ef6\n .addEthMonitorEvent(new EventThree()) // \u6dfb\u52a0 \u76d1\u542c\u4e8b\u4ef6\n .start();\n\n// TODO \u6682\u65f6\u4e0d\u652f\u6301 SOL \u548c TRON \uff0c \u6b63\u5728\u5f00\u53d1\u4e2d......\n\n
\n

Web3J \u6269\u5c55

\n

\u5728 Web3j \u7684\u57fa\u7840\u4e0a\u8fdb\u884c\u4e86\u4e8c\u6b21\u5c01\u88c5\uff0c\u6269\u5c55\u4e86\u51e0\u4e2a\u57fa\u7840\u7684\u65b9\u6cd5\uff0c\u53ef\u4ee5\u5728\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u51cf\u8f7b\u5f00\u53d1\u8005\u7684\u5de5\u4f5c\u91cf

\n

\u4e3b\u94fe\u5e01\u67e5\u8be2\u4ee5\u53ca\u8f6c\u8d26

\n
String privateKey = \"\"; // \u79c1\u94a5\nWeb3j web3j = Web3j.build(new HttpService(\"https://data-seed-prebsc-1-s1.binance.org:8545/\")); // \u94fe\u7684 RPC \u5730\u5740\n\nEthHelper ethHelper = MagicianWeb3.getEthBuilder().getEth(web3j, privateKey);\n\n// \u4f59\u989d\u67e5\u8be2\nBigInteger balance = ethHelper.balanceOf(fromAddress);\n\n// \u8f6c\u8d26\nTransactionReceipt transactiOnReceipt= ethHelper.transfer(\n toAddress,\n BigDecimal.valueOf(1),\n Convert.Unit.ETHER\n);\n
\n

InputData \u7f16\u89e3\u7801

\n
EthAbiCodec ethAbiCodec = MagicianWeb3.getEthBuilder().getEthAbiCodec();\n\n// \u7f16\u7801\nString inputData = ethAbiCodec.getInputData(\n \"transfer\", // \u65b9\u6cd5\u540d\n new Address(toAddress), // \u53c2\u6570 1\n new Uint256(new BigInteger(\"1000000000000000000\")) // \u53c2\u6570 2 \uff0c\u5982\u679c\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\n );\n\n// \u89e3\u7801\nList<Type> result = ethAbiCodec.decoderInputData(\n \"0x\" + inputData.substring(10), // \u53bb\u9664\u65b9\u6cd5\u7b7e\u540d\u7684 inputData\n new TypeReference<Address>() {}, // \u88ab\u7f16\u7801\u7684\u65b9\u6cd5\u7684\u53c2\u6570 1 \u7c7b\u578b\n new TypeReference<Uint256>() {} // \u88ab\u7f16\u7801\u7684\u65b9\u6cd5\u7684\u53c2\u6570 2 \u7c7b\u578b\uff0c \u5982\u679c\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\n );\n\nfor(Type type : result){\n System.out.println(type.getValue());\n}\n\n// \u83b7\u53d6\u65b9\u6cd5\u7b7e\u540d\uff0c\u5176\u5b9e\u5c31\u662f inputData \u7684\u524d\u5341\u4f4d\nString functiOnCode= ethAbiCodec.getFunAbiCode(\n \"transfer\", // \u65b9\u6cd5\u540d\n new Address(toAddress), // \u53c2\u6570 1 \uff0c\u503c\u968f\u610f\u4f20\uff0c\u53cd\u6b63\u6211\u4eec\u8981\u7684\u65b9\u6cd5\u7b7e\u540d\uff0c\u4e0d\u662f\u5b8c\u6574\u7684 inputData\n new Uint256(new BigInteger(\"1000000000000000000\")) // \u53c2\u6570 2 \uff0c\u503c\u968f\u610f\u4f20\uff0c\u53cd\u6b63\u6211\u4eec\u8981\u7684\u65b9\u6cd5\u7b7e\u540d\uff0c\u4e0d\u662f\u5b8c\u6574\u7684 inputData \uff0c\u5982\u679c\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\n );\n \n
\n

\u5408\u7ea6\u67e5\u8be2 \u4ee5\u53ca \u5199\u5165

\n
String privateKey = \"\"; // \u79c1\u94a5\nWeb3j web3j = Web3j.build(new HttpService(\"https://data-seed-prebsc-1-s1.binance.org:8545/\")); // \u94fe\u7684 RPC \u5730\u5740\n\nEthContract ethCOntract= MagicianWeb3.getEthBuilder().getEthContract(web3j, fromAddressPrivateKey);\nEthAbiCodec ethAbiCodec = MagicianWeb3.getEthBuilder().getEthAbiCodec();\n\n// \u67e5\u8be2\nList<Type> result = ethContract.select(\n contractAddress, // \u5408\u7ea6\u5730\u5740\n ethAbiCodec.getInputData(\n \"balanceOf\", // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u540d\u79f0\n new Address(toAddress) // \u65b9\u6cd5\u7684\u53c2\u6570\uff0c\u5982\u679c\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n ), // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u7684 inputData\n new TypeReference<Uint256>() {} // \u65b9\u6cd5\u7684\u8fd4\u56de\u7c7b\u578b\uff0c\u5982\u679c\u6709\u591a\u4e2a\u8fd4\u56de\u503c\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n );\n\n// \u5f80\u5408\u7ea6\u91cc\u5199\u5165\u6570\u636e\n// gasPrice \uff0cgasLimit \u4e24\u4e2a\u53c2\u6570\uff0c\u5982\u679c\u60f3\u7528\u9ed8\u8ba4\u503c\u53ef\u4ee5\u4e0d\u4f20\uff0c\u6216\u8005\u4f20 null\n// \u5982\u679c\u4e0d\u4f20\u7684\u8bdd\uff0c\u4e24\u4e2a\u53c2\u6570\u90fd\u5fc5\u987b\u4e0d\u4f20\uff0c\u8981\u4f20\u5c31\u4e00\u8d77\u4f20\uff0c \u5982\u679c\u8bbe\u7f6e\u4e3a null \u7684\u8bdd\uff0c\u53ef\u4ee5\u4e00\u4e2a\u4e3a null \uff0c\u4e00\u4e2a\u6709\u503c\nSendResultModel sendResultModel = ethContract.sendRawTransaction(\n fromAddress, // \u8c03\u7528\u8005\u7684\u5730\u5740\n contractAddress, // \u5408\u7ea6\u5730\u5740\n new BigInteger(\"1200000\"), // gasPrice \uff0c\u5982\u679c\u60f3\u7528\u9ed8\u8ba4\u503c \u53ef\u4ee5\u76f4\u63a5\u4f20 null \uff0c\u6216\u8005\u4e0d\u4f20\u8fd9\u4e2a\u53c2\u6570\n new BigInteger(\"800000\"), // gasLimit \uff0c\u5982\u679c\u60f3\u7528\u9ed8\u8ba4\u503c \u53ef\u4ee5\u76f4\u63a5\u4f20 null \uff0c\u6216\u8005\u4e0d\u4f20\u8fd9\u4e2a\u53c2\u6570\n ethAbiCodec.getInputData(\n \"transfer\", // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u540d\u79f0\n new Address(toAddress), // \u65b9\u6cd5\u7684\u53c2\u6570\uff0c\u5982\u679c\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n new Uint256(new BigInteger(\"1000000000000000000\")) // \u65b9\u6cd5\u7684\u53c2\u6570\uff0c\u5982\u679c\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f20\u5165\u4e0b\u4e00\u4e2a\u53c2\u6570\n ) // \u8981\u8c03\u7528\u7684\u65b9\u6cd5\u7684 inputData\n );\n\nsendResultModel.getEthSendTransaction(); // \u53d1\u9001\u4ea4\u6613\u540e\u7684\u7ed3\u679c\nsendResultModel.getEthGetTransactionReceipt(); // \u4ea4\u6613\u6210\u529f\u4e0a\u94fe\u540e\u7684\u7ed3\u679c\n
\n

github \u5730\u5740\uff1ahttps://github.com/Magician-blockchain/Magician-web3

\n" }, { "author": { "url": "member/cxh116", "name": "cxh116", "avatar": "https://cdn.v2ex.com/avatar/7e7a/41b8/13872_large.png?m=1775747136" }, "url": "t/892701", "title": "\u8bf7\u6559\u4e00\u4e2a Eth \u5408\u7ea6\u8c03\u7528 Gas \u7684\u8ba1\u7b97\u95ee\u9898.", "id": "t/892701", "date_published": "2022-11-04T08:19:11+00:00", "content_html": "Eth \u5408\u7ea6\u51fd\u6570\u5199\u64cd\u4f5c(\u975e view \u975e pure)\u65f6\u8c03\u7528\u5916\u90e8\u53ea\u8bfb(view)\u5408\u7ea6\u51fd\u6570\u65f6, \u5916\u90e8 view \u51fd\u6570\u8c03\u7528\u4f1a\u7b97 Gas \u5417?

\u5047\u5982\u5916\u90e8 view \u8c03\u7528\u4e5f\u7b97 Gas \u7684\u8bdd,\u6211\u628a\u5916\u90e8\u5408\u7ea6\u540c\u6837\u7684\u4ee3\u7801,\u590d\u5236\u5230\u81ea\u5df1\u7684\u5408\u7ea6\u91cc,\u76f4\u63a5\u5728\u5408\u7ea6\u5185\u90e8\u8c03\u7528.
\u5728\u5ffd\u7565\u9996\u6b21\u90e8\u7f72\u7684 Gas \u6210\u672c\u65f6,\u54ea\u79cd\u8c03\u7528\u65b9\u5f0f\u66f4\u7701 Gas ? \u8fd8\u662f\u4e00\u6837\u591a?" }, { "author": { "url": "member/lovepplforever", "name": "lovepplforever", "avatar": "https://cdn.v2ex.com/gravatar/2b0f0fddd095190dbcf2850407eeaab9?s=73&d=retro" }, "url": "t/884243", "date_modified": "2022-10-01T11:11:30+00:00", "content_html": "

\u5728\u4ee5\u592a\u574a\u4e0a\u9762\uff0c\u6bcf\u5929\u90fd\u6709\u5f88\u591a meme \u9879\u76ee\uff0c\u7b49\u522b\u4eba\u4e70\u4e86\u4e4b\u540e\u5c31\u64a4\u6c60\u5b50\u8dd1\u8def\uff0c\u6bd4\u5982\u8bf4\u8fd9\u4e2a\uff1a

\n

https://etherscan.io/tx/0x2f20b5361f38109b74f1ca342454996ad5224b75da8cb9d859cdfe7440397464#eventlog

\n

\u6bcf\u4e2a remove liquidity \u7684\u9879\u76ee\u90fd\u5305\u542b\u4e86 9 \u4e2a\u4e00\u6837\u7684 log event \uff0c\u6211\u5c31\u60f3\u76f4\u63a5\u7528 query log \u7684\u65b9\u5f0f\u6765\u67e5\uff1a

\n
v2query := ethereum.FilterQuery{\n FromBlock: big.NewInt(15639422),\n ToBlock: big.NewInt(15640422),\n Topics: [][]common.Hash{\n {\n common.HexToHash(\"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\"),\n },\n {\n common.HexToHash(\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\"),\n },\n {\n common.HexToHash(\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\"),\n },\n {\n common.HexToHash(\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\"),\n },\n {\n common.HexToHash(\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\"),\n },\n {\n common.HexToHash(\"0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1\"),\n },\n {\n common.HexToHash(\"0xdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496\"),\n },\n {\n common.HexToHash(\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\"),\n },\n {\n common.HexToHash(\"0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65\"),\n },\n },\n}\n
\n

\u4f46\u662f\u62a5\u9519\u63d0\u793a

\n
 400 Bad Request: {\"jsonrpc\":\"2.0\",\"id\":1,\"error\":{\"code\":-32602,\"message\":\"invalid 1st argument: filter 'topics': array size cannot exceed 4\"}}\n
\n", "date_published": "2022-10-01T11:11:00+00:00", "title": "\u4ee5\u592a\u574a\u5982\u4f55\u67e5\u51fa\u6240\u6709\u7684 Pull Rugged (\u8dd1\u8def/\u5272\u97ed\u83dc) \u9879\u76ee?", "id": "t/884243" }, { "author": { "url": "member/buried", "name": "buried", "avatar": "https://cdn.v2ex.com/avatar/570e/9e90/426409_large.png?m=1773905186" }, "url": "t/873987", "title": "geth \u7684 bootnodes \u597d\u50cf\u4e0d\u80fd\u4f5c\u4e3a\u670d\u52a1\u53d1\u73b0\u4e86\uff1f", "id": "t/873987", "date_published": "2022-08-19T06:32:21+00:00", "content_html": "\u7528\u4e86 geth \u91cc\u7684 devp2p \u60f3\u6293\u4e00\u4e9b\u8282\u70b9\uff0c\u53d1\u73b0\u6293\u4e0d\u5230\u8282\u70b9\u3002\u62ff Wireshark \u6293\u5305\u53d1\u73b0 udp \u5305\u53ea\u51fa\u4e0d\u8fdb\uff0c\u4ece ethernodes \u4e0a\u9762\u62ff\u4e86\u4e24\u4e2a\u4e2d\u56fd\u7684\u8282\u70b9\u4f5c bootnodes \u5012\u662f\u53ef\u4ee5\uff0c\u662f udp \u5c01\u9501\u7684\u539f\u56e0\u5417\uff1f" }, { "author": { "url": "member/lovepplforever", "name": "lovepplforever", "avatar": "https://cdn.v2ex.com/gravatar/2b0f0fddd095190dbcf2850407eeaab9?s=73&d=retro" }, "url": "t/872635", "title": "\u6811\u8393\u6d3e\u642d\u5efa\u4ee5\u592a\u574a\u5168\u8282\u70b9\u7684\u6210\u672c\u662f\u591a\u5c11\uff1f", "id": "t/872635", "date_published": "2022-08-13T08:49:57+00:00", "content_html": "" }, { "author": { "url": "member/lovepplforever", "name": "lovepplforever", "avatar": "https://cdn.v2ex.com/gravatar/2b0f0fddd095190dbcf2850407eeaab9?s=73&d=retro" }, "url": "t/868766", "title": "PoS \u4f1a\u8ba9\u4ee5\u592a\u574a\u7684\u5b89\u5168\u6027\u53d7\u5230\u5a01\u80c1\u5417\uff1f", "id": "t/868766", "date_published": "2022-07-26T04:57:36+00:00", "content_html": "" }, { "author": { "url": "member/lovepplforever", "name": "lovepplforever", "avatar": "https://cdn.v2ex.com/gravatar/2b0f0fddd095190dbcf2850407eeaab9?s=73&d=retro" }, "url": "t/865305", "title": "macOS \u7684\u5feb\u6377\u6307\u4ee4\u6709\u5565\u6bd4\u8f83\u4eae\u773c\u7684\u7528\u6cd5\uff1f", "id": "t/865305", "date_published": "2022-07-10T13:53:39+00:00", "content_html": "" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86