以太坊transfer是啥意思
1. Solidity之地址(address)
在以太坊(Ethereum, ETH)的世界中,地址扮演着至关重要的角色,它们是唯一且与公钥或合约绑定的。在交易过程中,地址就如同银行账户,是预期收款的标识。
ETH地址主要由两部分构成:通过keccak-256哈希函数生成的20字节值,这些值以16进制表示,通常以0x开头。地址的生成原理是将公钥或合约的哈希值截取最后20个字节。在Solidity编程中,只需在变量前加上"address"关键字即可定义地址变量。
在Solidity 0.5版本之前,合约地址与可支付地址(payable address)无明显区分,但0.5.0以后,合约地址类型独立,只有带有payable关键字的地址才能接受和发送代币。尽管地址可以进行交易,但推荐使用非推荐方法1和2时需谨慎,如1.address.transfer()和address.send(),而更常用的方法是获取余额,如address.balance,或者执行智能合约调用,如address.call(bytes memory)等。
创建合约时,零地址(zero-address)是一个特殊的地址,用于合约部署。它是个空的20字节值,仅包含0x0,交易时在接收者字段填入零地址,EVM会识别为合约创建请求。
总的来说,以太坊地址是基于公钥或合约生成的唯一标识,用于交易和智能合约交互,并且地址类型、零地址等概念在 Solidity 中具有特定的用法和规则。
2. 什么是以太、以太网、以太坊
以太、以太网、以太坊以太
以太是一种虚构的物质,是英文Ether或Aether的音译。一般可以理解为一种看不见摸不着,静止不动的物质,充斥着整个空间。最早提出“以太”这个概念的是亚里士多德,早在公元前3世纪,他认为世界由五种元素组成,分别是水、火、土、气、以太,前四者组成了地球,而以太则充斥在整个宇宙之间。
起初在哲学史上,以太带有一些神秘色彩,后来笛卡尔在17世纪最先将以太引入科学,并赋予它某种力学性质。在笛卡尔看来,物体之间的所有作用力都必须通过某种中间媒介物质来传递,不存在任何超距作用。因此空间中不可能是什么都没有的,而其中必定需要某种媒介来传递诸如引力等相互作用。这种无色无味不能被人直接观察的媒介就是以太。
但是到了19世纪末,麦克斯韦构建起他伟大的电磁理论,他的理论中,光是一种电磁波,而电磁波的载体是电场、磁场本身,并不需要任何外界物质。而且后来的实验和理论表明,如果不假定“以太”的存在,很多物理现象可以有更为简单的解释。因此,随着科学发展,没有任何观测证据表明“以太”存在,“以太”理论也逐渐被科学界抛弃。
综上所述,以太、以太网和以太坊分别代表了不同的概念和技术领域。以太是一种虚构的物质概念,以太网是一种计算机局域网技术,而以太坊则是一个可编程的区块链平台。
3. BSC可以转BEP20吗
可以。
DeFi运动的基础是代币,无论是以太坊DeFi中的ERC20代币,还是BSC Defi 中的BEP20代币,都是承载各种DeFi协议的基础媒介。因此,通过观察BSC上的BEP20的 交易,我们就可以直观地了解哪些DeFi项目是真正受欢迎的。BEP20和ERC20一样,在转账时都会触发一个事件,其原型定义如下:Transfer(address from, address to, uint value);因此,我们只要从BSC链上提取一定周期发生内的BEP20代币的Transfer事件并按照代币 合约地址进行分类统计,就可以知道在这个周期中的各种DeFi项目的真实活跃情况了。BEP20一键发币工具是BSC TokenDIY。首先创建一个新的目录 bscspider,然后进入该目录执行如下命令初始化;再编写Bsc Spider代码框架,抓取最新区块的Transfer事件,定时转储BEP20交易统计数据,写出完整的Bsc Spider代码,最后分析Bsc Spider的转储数据。
币安链又叫币安智能链,即BSC,币安链的代币叫BEP20代币,它是由全球交易量最大的数字货币交易所币安交易所创建的,该链与原有的币安链是并行运行的,并且BSC可以与智能合约相互配合着使用,与币安链相比还要更加的灵活。币安智能链创建至今已经一年多的时间,该项目也慢慢从初创走向了成熟,虽然刚开始有很多人对币安智能链的推出并不看好,但是现在该链已经成为除以太坊之外的最强交易所公链。
4. ERC20代币的六个基本功能是什么
为了创建ERC20令牌,你需要记下以下内容
- 代币名称代
- 币符号代
- 币小数
- 位代币数量为流通
- 合约
- 代号验证源代码
除了ERC20之外,还有ERC20,ERC721,ERC223,ERC621,ERC827, 具体不做累述,但是对ERC721顺便说一下, ERC721是主要用于区块链游戏的协议,大家经常看到的区块链游戏基本上是基于ERC721。
5. 【ETH钱包开发04】web3j转账ERC-20 Token
在上一篇文章中讲解了ETH转账,这一篇讲一下ERC-20 Token转账。
【ETH钱包开发03】web3j转账ETH
1、直接用web3j的API
2、java/Android调用合约的 transfer 方法
不管用哪种方式来转账,你都需要先写一个solidity智能合约文件来创建ERC-20 Token,然后部署合约,最后才是通过客户端来调用。
注意:erc-20 token转账和eth转账的区别如下:
1、erc-20 token创建交易对象用的是这个方法 createTransaction
2、erc-20 token需要构建 Function ,它其实对应的就是erc-20 token合约中的那些方法。它的第一个参数就是ERC20中那几个方法的名称,第二个参数的话就是对应合约方法中的参数,第三个参数是和第二个参数对应的,按照我那样就行了。转账的话就是 transfer ,我们从合约的 transfer 可以看到第一个参数是收款地址,第二个参数是金额,所以 Function 这里对应起来就好。
这种方法不需要使用web3j封装的方法,而是直接调用solidity合约的方法。
步骤
1、web3j加载一个已经部署的合约
2、验证合约是否加载成功 isValid
3、如何加载合约成功,则调用合约的 transfer 方法
注意:
1、这里的 TokenERC20 是根据solidity智能合约生成的对应的Java类,用于java/Android和智能合约交互的,如果你对这里不太清楚,不妨看看我之前的一篇文章。
以太坊Web3j命令行生成Java版本的智能合约
2、如果加载合约失败,可能的一个原因是合约对应的Java类中的 BINARY 的值不对,这个值是你部署合约成功之后的bytecode,你最好检查对比一下。
我发送一笔交易,可以通过这个地址查询
https://rinkeby.etherscan.io/tx/