① 以太坊智能合约开发:让合约接受转账
在以太坊智能合约开发中,通常会有向合约地址进行转账的需求,那么有几种向合约地址进行转账的方式呢?
有三种方式:
部署合约时转账
调用合约提供的方法
直接向合约地址进行转账
但有一个问题,以太坊的智能合约默认是拒绝来自任何地址的转账,那么如何让合约能够支持接收转账呢?
1、部署转账
在进行合约开发时,如果想要在部署时,直接向该合约进行转账,只需要给构造函数中添加payable修饰符。
示例:
2、执行合约转账
执行合约转账,则需要给你需要支持转账功能的方法添加payable修饰符
示例:
3、直接转账
支持直接转账,需要借助后备函数(fallback function),只需要为后备函数添加 payable 修饰符
示例:
② ETH转账的2种方式的对比
web3j支持使用以太坊钱包文件(推荐)和以太网客户端管理命令来发起一笔交易。当你创建了一个拥有以太币的账户后,你可以通过以下两种交易机制,和以太坊网络(私网/公网)交易:
这里主要讲一下 线下签名交易(Offline transaction signing) 。线下签名交易允许你使用web3j提供的钱包账户发起交易,你完全控制自己的私钥,交易发送到网络上的其它节点并广播。
线下签名交易使用 RawTransaction 对象来完成,一共有如下几步:
1、通过私钥或密码+钱包文件(keystore)来加载转账凭证Credentials
2、获取发起转账账户的nonce 值,也就是第几笔交易
3、创建 RawTransaction交易 对象
4、签名 RawTransaction 对象,也就是对交易做签名
5、发送交易( RawTransaction 对象)给节点处理。
6、获取交易哈希值TxHash
以太坊实战-再谈nonce使用陷阱: https://blog.csdn.net/wo541075754/article/details/79054937
此外,还有一种简单的转账方式
这种方式,不需要自己管理nonce。
这2种方式都是离线交易,先组装交易,然后发送到链上。
参考:
https://docs.web3j.io/getting_started.html#transactions
https://www.jianshu.com/p/6650d2a3aea9
③ 以太坊转账需要网络吗
需要。网络比较常用,基于以太坊智能合约发行的ERC20代币,都可以使用ERC20网络进行转账,不会遇到网络拥堵,转账速度很快,网络通畅状态,几分钟内可以到账,费用会有波动,矿工费需要支付ETH。
④ 以太币转帐速度
两小时至24小时以内。
可根据转账支付的矿工费,快的一分钟能到,慢的也能在几分钟到。一般来说转账BTC,ETH等其它代币到账的时间在两个小时以内,快的情况也大概需要30分钟,所以转账请把握好到账时间。
以太坊已经做到了每秒处理5次交易,如果它超过6,那么它也处于峰值容量。另一方面,Uber平均每秒钟有12次乘车,PayPal几百次,Visa数千次,大型股票交易所成千上万,而在物联网中,讨论的是每秒数十万。
⑤ eth多少才能转账
1、使用“普通”模式:按汇款金额的0.2%收取,最低2元,最高20元。1-2个工颂模作日内提出(遇周末节假日顺延),到账时间取决于收款银行的系统处理情况;
2、“快速”模式:按0.5%收取,最低2元,最高25元。款项实时提出招行,一般工作日2小时内到账,如在周末节假日或晚上提交,具体到账时间取决于对消如方银行的系统处理情况;
3、“实时”模式:如果能成功提交,一般实时到账,单笔金额不能超过5万,按0.2%收取,最低2元,最高20元。
到账时间:1、系统内同城资金实时到帐,异地正常情况下资金可在2个工作日内到账。2、跨行同城可在2个工作日内到账。拿樱启异地正常情况下资金可在5个工作日内到账。转账限额:无限制。
⑥ 比特派 ETH、ERC20 Token 批量转账教程,好用!
功能简介:
比特派的批量转账功能可以将你的ETH或ERC20的TOKEN 同时发送到多个地址(当前最多支持255个)。
优势:
节省操作时间,节省矿工费。
操作教程:
1、打开比特派,在左上角切换到“ETH体系”点击 “批量转账”
2、进入操作页面后,首先确认自己用来付款的的币种、地址。然后点击加号【+】来添加收款方信息。
3、你可以选择【从剪贴板获取】或者【手动输入】收款方信息。
当你选择从剪贴板获取时:
你需要按固定格式提前复制好相关内容,再点击此按钮才可添加成功。
格式为:
地址,金额 (地址和金额之间用英文的逗号分隔,多组信息之间需要换行)
例如:
0xc35f4f66ef......20db8f7d , 0.001
0xfe4503c78......4e4ae1ae , 0.002
如果您要处理的地址较多,建议使用电脑表格软件进行整理,格式如下。
当你整理的地址在表格内显示异常时,选中所有异常的表格,右键选择单元格格式,并将单元格格式选择文本。(不同的软件操作步骤略有差异,核心操作在于将单元格文本格式选择成文本。)
整理完成后,可通过微信等其他软件将内容发送到手机并复制,打开批量转账页面点击加号+,选择从剪贴板复制,即可批量添加收款信息。
当你选择手动输入时:
可以手动输入地址、金额。也可以通过扫码、地址簿添加等方式添加地址。
4、地址信息添加完成并确认无误后,点击确认转账,核对好相关信息后点击确认,即可发出。等待合约确认后,便可查看所有的转账详情。
⑦ 以太坊转帐二十小时没到帐
新手第一次转以太坊难免会紧张,因为不清楚以太坊转账多久到账,所以每一秒的等待都是焦急的。以太坊转账的网络速度比较快,因为以太坊网络解决了比特币网络中扩展性不足的问题,以太坊网络也比比特币网络速度快。通常情况下以太坊转账只需要几分钟就可以到账。若是你进行以太坊转账迟迟没有收到到账信息,你可以咨询客服,或者自己查找是不是其中某个流程出现了错误。不论是转比特币还是以太坊,都需要手续费。因为手续费是给矿工的一种鼓励,也是对矿工电费的一种补偿。矿工们要确认每一笔交易很不容易,所以他们也需要报酬
⑧ 【ETH钱包开发03】web3j转账ETH
在之前的文章中,讲解了创建、导出、导入钱包。
【ETH钱包开发01】创建、导出钱包
【ETH钱包开发02】导入钱包
本文主要讲解以太坊转账相关的一些知识。交易分为ETH转账和ERC-20 Token转账,本篇先讲一下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刷新一次。
正常情况下,几十秒内就可以获取到区块信息了。
区块确认数=当前区块高度-交易被打包时的区块高度。
⑨ 以太坊ete转账不到
因为网络有一定的延迟原因,所以会导致转账成功,但是没有到账。
以太坊投资者在某个交易所平台当中进行了以太坊提现,结果发现eth没收到;是一些投资者在进行购入以太坊购买交易过程中,已经按照提示支付了对应的购买价款和手续费,但是却发现eth没收到。网络上所反映的有关“eth没收到”的情况大致就如此,除此之外可能还存在其他的一些与“eth没收到”有关的咨询,但是大致仍然脱离不了这两类范畴。
我们在转账之后,有时会出现转账迟迟未到账的情况,很多用户十分着急,甚至认为自己的币丢失了。Tokenview收到了一封来自昵称为港湾用户的求助邮件。邮件中说,该用户在进行USDT转账时发生了USDT丢失的情况。用户提供了提币地址,交易ID,接收地址以及转账金额和转账时间,问是否可以找回。