① web3怎么交易流程(web3j获取交易详情)
欧易web3钱包怎么转账1、首先打开欧易(OKEX),点击页面右上方资产管理,选择提币,进入提币页面。
2、其次选择需要提币的币种,例如BTC,选择提币方式,可以选择链上提币或内部转账,然后点击下一步。
3、最后填写提币信息,输入提币地址和数量,点击下一步即可。
【ETH钱包开发03】web3j转账ETH
在之前的文章中,讲解了创建、导出、导入钱包。
【ETH钱包开发01】创建、导出钱包
【ETH钱包开发02】导入钱包
本文主要讲解以太坊转账相关的一些知识。交易分为ETH转账和ERC-20Token转账,本篇先讲一下ETH转账。
1、解锁账户发起交易。钱包keyStore文件保存在geth节点上,用户发起交易需要解锁账户,适用于中心化的交易所。
2、钱包文件离线签名发起交易。钱包keyStore文件保存在本地,用户使用密码+keystore的方式做离线交易签名来发起交易,适用于dapp,比如钱包。
本文主要讲一下第二种方式,也就是钱包离线签名转账的方式。
交易流程
1、通过keystore加载转账所需的凭证Credentials
2、创建一笔交易RawTransaction
3、使用Credentials对象对交易签名
4、发起交易
注意以下几点:
1、Credentials
这里,我是通过获取私钥的方式来加载Credentials
还有另外一种方式,通过密码+钱包文件keystore方式来加载Credentials
2、nonce
nonce是指发起交易的账户下的交易笔数,每一个账户nonce都是从0开始,当nonce为0的交易处理完之后,才会处理nonce为1的交易,并依次加1的交易才会被处理。
可以通过eth_gettransactioncount获取nonce
3、gasPrice和gasLimit
交易手续费由gasPrice和gasLimit来决定,实际花费的交易手续费是gasUsed*gasPrice。所有这两个值你可以自定义,也可以使用系统参数获取当前两个值
关于gas,你可以参考我之前的一篇文章。
以太坊(ETH)GAS详解
gasPrice和gasLimit影响的是转账的速度,如果gas过低,矿工会最后才打包你的交易。在app中,通常给定一个默认值,并且允许用户自己选择手续费。
如果不需要自定义的话,还有一种方式来获取。获取以太坊网络最新一笔交易的gasPrice,转账的话,gasLimit一般设置为21000就可以了。
Web3j还提供另外一种简单的方式来转账以太币,这种方式的好处是不需要管理nonce,不需要设置gasPrice和gasLimit,会自动获取最新一笔交易的gasPrice,gasLimit为21000(转账一般设置成这个值就够用了)。
这个问题,我想是很多朋友所关心的吧。但是到目前为止,我还没有看到有讲解这方面的博客。
之前问过一些朋友,他们说可以通过区块号、区块哈希来判断,也可以通过Receipt日志来判断。但是经过我的一番尝试,只有BlockHash是可行的,在web3j中根据blocknumber和transactionReceipt都会报空指针异常。
原因大致是这样的:在发起一笔交易之后,会返回txHash,然后我们可以根据这个txHash去查询这笔交易相关的信息。但是刚发起交易的时候,由于手续费问题或者以太网络拥堵问题,会导致你的这笔交易还没有被矿工打包进区块,因此一开始是查不到的,通常需要几十秒甚至更长的时间才能获取到结果。我目前的解决方案是轮询的去刷BlockHash,一开始的时候BlockHash的值为0x00000000000,等到打包成功的时候就不再是0了。
这里我使用的是rxjava的方式去轮询刷的,5s刷新一次。
正常情况下,几十秒内就可以获取到区块信息了。
区块确认数=当前区块高度-交易被打包时的区块高度。
以太坊web3.sendRawTransaction离线签名交易工作中需要复现短地址攻击和the重入攻击,重入攻击可以直接通过eth.sendTransaction和remix来发送交易,但是短地址攻击由于钱包和remix这些都对input做了长度检测,无法通过这些方式来复现,只能通过发离线签名交易来实现。
1.环境依赖:nodejs,keythereum,ethereumjs-common,ethereumjs-tx。
2.进入Node控制台,获取相应账户私钥。
3.签名交易,进入Node,这里注意nonce问题,需要Nonce是实际可执行的nonce,Nonce不对会发送交易失败,关于如何获取inputdata网络比较多就不详述了。
4.遇到的坑,网络出来的步骤是有问题的或者过时了,当时是参考的这篇文章,
,在控制台通过eth.sendRawTransaction发送签名好的交易,我遇到了这个错误****
② 什么是Etherscan用途是什么如何使用Etherscan
想紧跟市场动态,第一时间掌握最新行情吗? http://www1.itou8.com/ba/
Etherscan是什么?对于任何想要深入了解加密货币、 NFT和去中心化应用程序 (dApp) 的人来说,理解区块链交易和数据至关重要。区块链透明的公共账本存储了所有交易数据,但如果没有合适的工具,访问和解读这些海量信息可能会非常困难。
区块浏览器对于探索这些复杂的领域至关重要,而 Etherscan 正是以太坊区块链的首选,因为它承载着数量最多的 dApp。掌握 Etherscan 不仅能让用户轻松浏览以太坊的版图,还能为他们提供一个理解其他区块链的框架。
Etherscan 深受链上研究人员和区块链爱好者的喜爱,它提供了探索以太坊生态系统所需的洞见和工具。
今天区块链网络小编和大家深入探讨 Etherscan 的概念、运作方式以及如何利用它的功能来加深您对以太坊网络的理解。下面一起详细了解下吧!
Etherscan 是什么?
Etherscan由一支由区块链爱好者组成的专业团队于 2015 年推出,是以太坊网络的基石区块浏览器和分析平台。它在设计上以用户为中心,是了解以太坊区块链的全面窗口,方便用户轻松浏览、验证和探索交易、地址和智能合约。
该平台超越了区块浏览器的基本功能,提供对以太坊各种活动的洞察。从追踪 ERC-20 代币交易和 NFT 铸币,到深入研究智能合约详情和监控钱包余额,Etherscan 让这些复杂的任务变得简单易用。
就像谷歌或必应等搜索引擎索引并呈现互联网海量数据一样,Etherscan 在以太坊区块链中扮演着类似的角色。它揭秘并翻译区块链的技术数据,并通过用户友好的界面呈现。这不仅简化了区块链信息的排序和筛选过程,还为普通用户和开发者开辟了丰富的可能性,增强了他们对以太坊生态系统的理解和互动。
2025 年以太坊:需要了解的关键统计数据
截至 2025 年 4 月,以太坊仍然是加密货币领域最活跃、最基础的区块链之一。尽管近期价格有所调整,但网络活动和采用率仍在持续增长:
ETH 价格:约 1,564.30 美元,比过去一年下跌了 55.89%。区块链大小:由于智能合约和 dApp 的使用增加,约为 1.2 TB。总锁定价值 (TVL):尽管市场低迷,但在强劲的 DeFi 行业的推动下,该价值仍继续增长。2025 年预测:乐观估计 ETH 到年底将达到 7,500 至 10,000 美元,而更保守的估计则表明其价格将在 4,500 至 6,500 美元之间。
这些趋势表明,尽管市场价格波动,但以太坊网络的使用率和信任度依然强劲。像 Etherscan 这样的平台在确保这个不断发展的数据生态系统的可访问性和透明度方面发挥着至关重要的作用。
专家对 2025 年以太坊的看法
行业专家继续对以太坊的未来提出不同的看法,这既反映了对其技术基础的信心,也反映了对竞争压力的认识:
Alacris Group 总裁Vladislav Kostitsyn预测 ETH 可能达到 8,000-10,000 美元,理由是以太坊具有机构吸引力,并且在现实世界中具有持续的实用性。Infinex 创始人Kain Warwick认为以太坊将在 DeFi 中占据主导地位,预计价格将超过 10,000 美元。企业家兼投资者马克·库班 (Mark Cuban)认为,以太坊仍然是 DeFi、NFT 和企业应用程序使用最广泛的区块链,并将当前的价格下跌视为买入机会。Bitget Research 首席分析师Ryan Li给出了更为谨慎的预测,即 6,000 美元,并指出预计会出现网络升级。Changelly预测到 2025 年 12 月 ETH 的平均价格将达到 3,367 美元,最高价格可能达到 3,733 美元。更为关键的是,Anza 首席经济学家Max Reznik警告称,人们会错失良机,并面临来自 Solana 等竞争区块链越来越大的压力。
这些观点强调了 Etherscan 等工具的战略重要性,它们提供了对以太坊不断发展的格局的透明度和洞察力。
Etherscan 如何工作?
著名的以太坊区块浏览器Etherscan 致力于让用户轻松访问和理解区块链数据。它通过用户友好的界面实现了这一点,使用户能够轻松搜索特定的交易、 钱包地址或智能合约。只需在Etherscan.io主页的搜索栏中输入一个公开的以太坊钱包地址,用户即可解锁与该地址相关的一系列交易详情。
Etherscan 的核心功能包括三个关键流程:实时检索以太坊数据、维护精心组织的记录以及向用户呈现近乎实时的数据。该平台采用一种复杂的方法从以太坊网络中提取数据,利用远程过程调用 (RPC)、节点和 RPC 端点。RPC,尤其是以太坊中使用的 JSON-RPC,允许 Etherscan 通过应用程序编程接口 (API)查询区块链数据。
区块链节点存储着以太坊网络的海量数据,充当着去中心化服务器的角色。Etherscan 通过 RPC 端点(接收并处理来自 Etherscan 数据请求的虚拟地址)与这些节点进行交互。该系统使 Etherscan 能够高效地获取最新的区块链信息。
为了满足高需求和运营规模,Etherscan 使用了多种 RPC 端点,确保用户获得近乎实时的更新。该平台持续检索和整理数据,丰富其丰富的历史记录。这种组织方式使 Etherscan 能够快速准确地响应用户关于以太坊相关活动的查询。
Etherscan 界面直观,数据呈现格式方便用户搜索和浏览。无论是查询余额、追踪钱包活动,还是探索智能合约详情,Etherscan 都能简化流程,使其成为任何与以太坊区块链交互的人的重要工具。
Etherscan 的用途是什么?
Etherscan 是一个功能全面、直观易用的平台,是个人和企业轻松探索以太坊网络的重要工具。通过整合关键特性和功能,Etherscan 能够满足区块链生态系统的广泛需求。
交易追踪和钱包地址探索:
Etherscan 允许用户追踪以太坊交易并深入研究基于以太坊的钱包地址。此功能允许用户查看任何钱包中持有的 ETH 金额、 ERC-20 代币和 NFT(ERC-721 代币)。用户还可以点击交易 ID 查看详细信息,例如 ETH 的 Gas 费用、智能合约详情、收件人地址和交易时间戳。此功能对于寻求以太坊生态系统透明度的交易者、投资者和企业至关重要。
全面的网络分析:
该平台的功能远不止个人钱包探索。用户可以分析整体网络统计数据,包括以太币 (ETH) 价格、市值、平均 Gas 价格、交易速度以及网络升级信息。Etherscan 还保存所有以太坊交易和区块的详细记录,提供深入的分析、图表和节点相关数据。
智能合约分析与交互:
Etherscan 的智能合约分析功能对于理解复杂的以太坊智能合约世界至关重要。用户可以查看智能合约附带的海量数据集,包括发布合约的钱包、合约代码、部署详情和代币供应量。它还列出了代币持有者、交易历史记录和相关钱包详情。此外,Etherscan 不仅支持读取智能合约数据,还支持直接从其平台与这些合约进行交互,无需访问合约的原始网站。
令牌跟踪和事件日志分析:
Etherscan 的代币追 踪器探索了多样化的以太坊代币生态系统,提供有关 ERC-20、ERC-721 和 ERC-1155 代币的详细信息。用户可以访问代币详情、持有者和交易历史记录。此外,Etherscan 的事件日志功能提供智能合约交互的详细洞察,捕获有关合约事件和相关交易的关键数据。
使用 Gas Tracker 进行优化:
Etherscan 上的 Gas Tracker 功能是优化以太坊网络交易成本的重要工具。它可以帮助用户实时监控和分析 Gas 价格,从而帮助他们就交易费用和合约部署成本做出明智的决策。
总而言之,Etherscan 提供了一套全面的功能,使其成为区块链世界中功能最强大的区块浏览器之一。它简化了追踪交易、分析智能合约、监控钱包以及与以太坊网络交互的流程,从而成为以太坊生态系统中所有参与者不可或缺的资源。
Etherscan 的实际用例
Etherscan 不仅仅是一个技术工具,它更是个人、开发者和企业日常使用的实用解决方案。以下是一些真实场景,展示了它的实用性:
1. 验证收款
在 Plisio,我们经常使用 Etherscan 来验证客户是否成功付款。只需将商家的以太坊钱包地址粘贴到搜索栏中,我们就能立即看到交易列表、交易状态以及 Gas 消耗量。这有助于解决争议并确认转账,而无需内部区块链基础设施。
2. 代币发行的智能合约监控
每发行一个新的 ERC-20 代币,我们都会使用 Etherscan 实时监控智能合约活动。这包括确认持有者数量、检查代币供应量是否与合约参数匹配,以及识别早期买家。该追 踪器提供宝贵的洞察信息,并在利益相关者之间建立信任。
3. 调查可疑活动
我们曾多次使用 Etherscan 追踪钱包中的异常活动,尤其是在收到网络钓鱼或诈 骗报告时。通过审查相关交易和 Gas 消耗行为,我们可以帮助识别潜在威胁或恶意合约。Etherscan 的搜索和透明功能使其成为不可或缺的取证工具。
4. 审计 DeFi 交互
用户经常向我们反映使用 DeFi 协议后代币丢失的问题。通过在 Etherscan 上查找他们的以太坊钱包地址,我们可以查看与之交互的具体合约,验证代币是否已发出,并据此提供建议。事件日志和交易详情视图在此至关重要。
5. 教育新用户
作为商家和客户入职培训的一部分,我们会教他们如何阅读 Etherscan 并解读智能合约细节。了解 Gas 使用情况、失败交易以及钱包交互,可以帮助用户更好地掌控并自信地使用 Web3。
Etherscan 允许用户探索的不仅仅是数据——它还能帮助用户做出更好的决策、提高安全意识,并更深入地了解价值如何在以太坊区块链中流动。
Etherscan 替代品
虽然 Etherscan 仍然是许多人的以太坊网络区块链浏览器的首选,但区块链领域还有很多替代平台,每个平台都提供独特的功能和对以太坊生态系统的洞察。
Etherchain :Etherchain 是 Etherscan 的强大替代方案,以其详细的交易追踪、地址监控和智能合约分析功能脱颖而出。该平台满足了用户对以太坊交易和地址详细信息的需求,从而帮助他们更深入地了解区块链的运作方式。Blockchair :为了满足多样化的用户群体,Blockchair 将其服务扩展到以太坊之外,支持多个区块链。其多功能性体现在高级搜索功能、数据导出选项以及探索交易、地址和区块的能力上。这使得 Blockchair 成为重视全面跨区块链探索工具的用户的首选。Ethplorer :Ethplorer 专为对代币分析感兴趣的用户量身定制,提供专注于以太坊代币的简化体验。它的优势在于可以轻松访问 ERC-20 和 ERC-721 代币信息,包括代币余额、交易历史记录和持有者数据,因此对代币爱好者和交易者极具吸引力。CryptoID :该平台提供一套用于分析区块链(包括以太坊)的工具。它以其详细的区块和交易浏览器、网络统计数据以及用户友好的界面而闻名,无论是新手还是经验丰富的用户,它都是不错的选择。TokenView :TokenView 是一款功能全面的区块链浏览器,它不仅支持以太坊,还支持一系列区块链。它提供丰富的功能,包括但不限于交易追踪、地址监控、代币分析和最新市场数据。对于那些希望全面了解更广阔的区块链生态系统的人来说,这个平台是理想之选。
除此之外,区块链探索领域也在不断发展,新的平台层出不穷,以满足区块链社区的多样化需求。每个平台都有其独特的优势,用户可以根据自己的具体需求进行选择,无论是深入的合约分析、跨链数据,还是全面的代币信息。
如何在 Etherscan 上验证智能合约?
为了确保 Etherscan 上代币信息的准确性和可靠性,验证网络上的代币合约地址至关重要。此验证过程可确保应用程序上显示的合约代码真实可靠,同时也为以太坊/Etherscan 社区根据需要审查或审计合约打开了大门。
Etherscan 要求在应用合约所有者提供的任何更新或信息之前,必须验证所有代币合约。此步骤对于维护安全标准至关重要。合约所有者验证合约时,应采取以下步骤:
访问 Etherscan.io。转到菜单并选择“更多”。选择“验证合同”。输入合同的基本详细信息,包括其地址,然后单击“继续”。在下一页中,将相关的智能合约代码插入提供的文本框中。确保完成 reCAPTCHA 验证。点击“验证并发布”。
完成这些步骤后,合约将得到验证并集成到网络中,这符合 Etherscan 对以太坊生态系统内安全性和透明度的承诺。
如何在 Etherscan 上取消交易?
一旦交易被录入区块链并被挖矿,通常就不可逆转了。交易编码的速度会随着网络流量的变化而变化。在低流量情况下,交易可以在几秒钟内处理完毕,几乎没有时间停留在网络的交易池中。然而,在高流量时段(例如以太坊),交易可能会停留数小时甚至数天,然后才能通过区块链加密永久记录。
在交易延迟的情况下,存在用另一笔交易(例如,价值 0 ETH)替换它的技术可能性,以有效地使原始交易无效。
但至关重要的是,必须理解,这只有在交易仍处于待处理状态时才可行,即使在这种情况下,也无法保证成功。这种方法理论性强,实践性不足。通常,一旦交易在区块链上执行,除非对网络进行重大改造,否则无法直接更改、检索或取消该交易。鉴于以太坊的规模和性质,无论交易规模大小,指望网络停止运行来撤销单笔交易都是不现实的。
需要注册账户才能使用 Etherscan 吗?
Etherscan无需注册,但您可以创建个人账号,以便使用其附加功能。例如,为队列交易、访问开发者工具和创建数据源设置提醒通知。
将钱包地址、交易 ID (TXID)、合约地址或其他标识符粘贴到搜索框,即可开始使用 Etherscan。用户可在浏览器查询您搜索的内容,但大部分都是交易、地址、时间戳和金额等相关信息。
Etherscan 不会为您提供加密货币钱包。要进行交易,您需要一个钱包,例如币安 Web3 钱包、MetaMask 或 Trust Wallet。
为什么应该使用 Etherscan?
了解与区块链交互的详细方法有助于进一步了解 DApp 和交易。掌握这些专业知识有助于保障账户安全、发现可疑行为。
例如,通过巨鲸提醒,您会在大量加密货币涌入交易平台时获得通知。尽管推测可能会出现偏差,但这可能意味着加密货币大量抛售。您还可以了解到项目创始人如何使用项目代币。当开发者放弃项目并出售加密货币时,如果能掌握相关动向,可以警觉到潜在欺诈或跑路骗 局。
如何在 Etherscan 中查找交易或钱包
追踪交易是 Etherscan 的一项基本功能。为了进行说明,我们将从近期交易列表中随机选择一笔交易。
例如,假设 1.23 枚以太币 (ETH) 从钱包发送到了以下公共地址:。
交易完成后,钱包中将显示这个 TXID:
假设想要查看交易确认量,并核实是否已成功发送,则可进行以下操作:
1.前往Etherscan主页,查找页面顶部的搜索框。
2. 接下来,将交易 ID 复制并粘贴到搜索框中,按下搜索图标。
3.屏幕会显示全部有关特定交易的详细信息:
按下【点击查看更多】按钮,还可获得更多详细信息。
4. 请查看默认的显示元素。
交易哈希函数
与特定交易相关的数字和字母字符串(TXID)。
交易状态
显示交易已失败、正在进行中,还是已成功。
区块
交易的区块编号。还可以看到已确认交易的次数。此处显示交易区块后添加到链中的区块数。
时间戳
添加到交易区块的时间戳。
从
提交交易的钱包地址。
至
接收地址或智能合约。
交易数值
交易中 ETH 发送金额。
交易费用
为达成交易而支付的费用。
燃料费价格
交易的单位 Gas 成本。
根据以上数据可一目了然看出交易是否已成功,且已接收到充分确认。查看接收钱包也可了解交易状态。
现在,返回到搜索框,粘贴接收钱包地址:
页面底部即可看到与地址相关的所有交易列表:
红色交易是最初发送的 1.23 枚 ETH。标记为已接收,以示搜索的地址位于接收端。页面顶部可以概览钱包余额。
如何在 Etherscan 中查找代币合约地址
如果经常在 DApp 中与智能合约交互,可以尝试学习如何在 Etherscan 中进行查找。这样您可以核对是否与正确的智能合约地址进行交互。此外,如需向钱包添加新代币,则可能需要代币地址。
要查找代币合约地址,您可以查看 Etherscan 的代币追 踪器页面,其中包含代币列表。此外,您也可以在 CoinMarketCap、CoinGecko 或项目的官方渠道搜索。
默认情况下,Etherscan 的代币追 踪器将按市值对代币进行排序。
点击列表中的代币,即可查找代币合约。其位于“其他信息”部分。
如何在 Etherscan 中查阅智能合约
下面我们来看看以太坊中的 Uniswap ERC-20 代币:
1.请将智能合约地址复制并粘贴到搜索框中。
2.即可看到有关Uniswap(UNI)代币合约的合约余额和其他通用信息的详情。
3. 下方还可以查看更多选项,包含交易、评论部分以及智能合约本身。点击旁边的【合约】,查看适用的交互选项与阅读 Uniswap 的合约规则。
4.[阅读合约]选项卡下,查看合约一般性信息。例如,可查询有使用权限的钱包中代币的特定地址或钱包余额。
点击【Write Contract】,即可直接与 UNI 智能合约进行交互。由于技术问题或网站中断造成 DeFi 平台和 DApp 不可用时,这个方法尤为受用。
换言之,您可以尝试通过 Etherscan 与智能合约进行交互,而非使用项目网站。只要确保使用的合约地址正确无误即可。
点击[关联Web3],即可关联类似MetaMask或币安链钱包的加密货币钱包,并与合约进行交互。
此处最简单的操作为代币转账。例如,使用【转账】选项卡,可从关联钱包转出合约相关代币。以下交易将从关联钱包发送 1 个 UNI 至粘贴的接收钱包地址。请确保待转金额的小数位数正确。
使用【转出】选项卡将代币从您控制的地址转移到其他地址。
大多数用户用不到这些功能。但是,稍有涉猎也能帮助用户了解如何访问存储在智能合约中的资金。
如何在 Etherscan 中查看 Gas 价格
Gas 价格是以太坊交易手续费的一部分。这些手续费由交易所在的区块决定。每个区块都有各自的固定费用,根据数据和网络流量而有所不同。
Etherscan 中的 Gas 追 踪器页面显示不同 Gas 价格的金额和时间变化。这是一款非常实用的工具,可大致预测 网络拥堵程度,以及转账或与智能合约交互需支付的费用。
结语
Etherscan 免费且简单易用。如需详细了解钱包或交易平台,Etherscan 绝对是一款绝佳工具。Etherscan 具备其他区块浏览器(如 BscScan)的基础功能,因此在其他平台中也可轻松使用类似操作技巧。无论确认交易状态还是查看感兴趣的 DApp 智能合约,Etherscan 都是完美的入门工具。
以上就是区块链网络小编给大家分享的是什么是Etherscan?用途是什么?如何使用Etherscan的详细介绍了,希望大家喜欢!
声明:文章内容不代表本站观点及立场,不构成本平台任何投资建议。本文内容仅供参考,风险自担!
点击官网不仅提供实时更新的最新行情,让你随时把握市场脉搏;还有专业的网络知识推荐 http://www1.itou8.com/ba/
③ Foundry的基本使用总结
Foundry的基本使用总结如下:
一、安装 安装方法:访问foundry的官方网址getfoundry.sh进行安装。mac系统用户可以直接使用foundry命令进行安装。
二、cast组件使用 功能:用于执行以太坊RPC调用,支持智能合约调用、发送交易、检索链数据等操作。 常用命令: cast rpc eth_blockNumber:查询区块高度。 cast block:查询区块信息。 cast tx:查询交易信息。 cast receipt:查询交易回执。 环境变量:支持ETH_RPC_URL环境变量,用于指定RPC URL。 数据处理:使用jq命令行JSON处理器处理cast查询结果。 交易模拟:使用cast run命令模拟交易。 钱包功能:支持创建新钱包、签名操作、ENS查询等。 合约功能:支持查看合约源代码、调用合约函数、查询合约存储位置等。
三、anvil组件使用 功能:提供模拟从主网fork的功能。 常用命令参数:—accounts、—balance、—forkblocknumber等。 实现方式:通过cast —forkurl=$ETH_RPC_URL实现fork功能。
四、forge组件使用 功能:智能合约开发框架,支持项目初始化、代码编译、自动化测试等。 常用命令: forge init:初始化项目。 forge build:编译代码。 forge test:进行自动化测试。 日志打印:通过emit log或console2.log实现日志打印,测试时使用—vvv参数显示打印内容。 cheatcode功能:允许在测试合约中通过vm修改虚拟机状态,如修改时间戳、发件人、余额等。 快照功能:允许在每个测试用例的gas使用上创建快照,有助于优化gas费用。
五、代码示例 修改ERC20代币余额:使用vm.deal函数修改ERC20代币余额。 forkurl在代码中的实现:通过vm.envAddress函数读取vm中的环境变量地址,实现针对不同测试网络的灵活测试用例编写。
④ 如何使用 Etherscan 的 API
虽然以太坊提供了 Web3 和 Json Rpc 这 2 种 API,geth 也额外提供了一些 API ,但是对于开发以太坊应用来说还是显得有些不足,比如说获取交易记录的时间,需要先通过交易的 hash 找到该交易对应的区块 id,然后才能找到对应的时间,查询起来相当不方便。
好在 Etherscan 对外提供了一些公共的 API,给我们提供了额外的能力来处理更多的业务场景。
为了方便开发人员更好地使用 ethersacn.io ,网站提供了 一系列 API 供开发人员使用。
API 的使用非常简单,基本上都是 get 方法,通过 http 请求就可以直接调用,在每个 Api 的说明文档都有对应的例子可以查看。
API 主要包含以下模块:账号、智能合约、交易、区块、事件日志、代币及工具等。
账号相关的 API,有获取账号金额,获取交易记录等,该模块提供的 API 最多。
API 示例
https://api.etherscan.io/api?mole)=account&action=balance&address=&tag=latest&apikey=YourApiKeyToken
参数说明
其中 mole、action、apikey 是每个 API 都有的参数,其他的参数则因不同 API 而不同。
返回结果
API 示例
https://api.etherscan.io/api?mole=account&action=balancemulti&address=,,&tag=latest&apikey=YourApiKeyToken
参数说明
(前面有讲过的参数就不讲了,下同)
与单个账号金额 API 相比,参数 address 用 , 号分隔多个账号,最多可支持 20 个账号的金额查询。
返回结果
API 示例
https://api.etherscan.io/api?mole=account&action=txlist&address=&startblock=0&endblock=99999999&page=1&offset=10&sort=asc&apikey=YourApiKeyToken
参数说明
返回结果
API 示例
https://api.etherscan.io/api?mole=account&action=txlistinternal&address=&startblock=0&endblock=2702578&page=1&offset=10&sort=asc&apikey=YourApiKeyToken
参数说明
参数与上一个 API 基本相同,只有 action 是 txlistinternal 这一点不同,这 2 种交易的区别是什么呢?简单的理解就是“正常”的交易是会记录到区块链上的,而“内部”交易是指不会记录到区块链上的记录,比如交易失败的记录。
另外这个 API 还可以通过交易 hash 查看交易的详情。
https://api.etherscan.io/api?mole=account&action=txlistinternal&txhash=&apikey=YourApiKeyToken
返回结果
API 示例
参数说明
返回结果
API 示例
参数说明
返回结果
智能合约相关的 API,其实只有一个获取智能合约接口的 API,但是这个 API 非常有用。
API 示例
参数说明
智能合约的 abi 就是一个 json 对象,通过这个对象我们可以调用其接口方法,后面会写一篇文章介绍如何操作 abi 对象,敬请期待。
返回结果
返回结果内容比较长,这里省略,就是一个 json 对象,感兴趣的可以自行调用该 API 看结果。
账号和智能合约的 API 已经能满足大部分的业务需求了,其他模块的 API 感觉没什么太大的作用,这里就不介绍了,感兴趣的读者可以自行查阅。
这里再说下 API 的使用限制,刚才提到每个 API 都有一个 apikey 参数,如果 API 没加上这个参数的话,每个 API 的请求次数不能超过 5 次每秒。
Etherscan 提供的这些 API 有些是和以太坊提供的 API 有重复的,比如说获取账号金额,获取事件日志记录等,但有一些 API 给我们带来了很大的便利性,比如获取账号交易记录,有了这个 API 就不用使用几个原生 API 进行各种数据拼接了。
另外 Etherscan 的这套 API 在 Rinkeby 测试网络也有一套一模一样的,区别只是前面的 url 不同,Rinkeby 的是: api-rinkeby.etherscan.io ,感兴趣的同学可以去试试。
⑤ Geth 控制台使用及 Web3.js 使用
在以太坊的DAPP开发中,需要 页面开发 和 智能合约 开发,页面开发需要 H5 , 智能合约 开发用 Solidity 实现。页面和以太坊智能合约交互,就需要使用 Web3.js 。
Geth 控制台(REPL)实现了所有的 web3 API 及 Admin API ,如果你对Geth命令行不太熟悉,请参考之前的文章。
以太坊客户端Geth常用命令详解
重定向日志到文件
使用geth console启动时,会在当前的交互界面下时不时出现日志。
可以使用以下方式把日志输出到文件。
可以新开一个命令行终端输入以下命令查看日志:
重定向另一个终端
也可以把日志重定向到另一个终端,先在想要看日志的终端输入:
就可以获取到终端编号,如:/dev/test
然后另一个终端使用:
启动geth, 这是日志就输出到另一个终端。
如果不想看到日志还可以重定向到空终端:
日志级别控制
使用–verbosity可以控制日志级别,如不想看到日志还可以使用:
另外一个启动geth的方法是连接到一个geth节点: