trx链和trc20
A. 波场发币教程TRC20发币教程TRX发币教程波场代币智能合约发币教程
波场链的币种叫TRC20代币,部署到TRX的主网上,波场发币教程也很简单,一起学习下吧,波场发币教程TRC20发币教程TRX发币教程波场代币智能合约发币教程,不会的退出阅读模式,我帮你代发
TRC-20
TRC-20是用于TRON区块链上的智能合约的技术标准,用于使用TRON虚拟机(TVM)实施代币。
实现规则
3 个可选项
通证名称
string public constant name = “TRONEuropeRewardCoin”;
通证缩写
string public constant symbol = “TERC”;
通证精度
uint8 public constant decimals = 6;
6 个必选项
contract TRC20 {
function totalSupply() constant returns (uint theTotalSupply);
function balanceOf(address _owner) constant returns (uint balance);
function transfer(address _to, uint _value) returns (bool success);
function transferFrom(address _from, address _to, uint _value) returns (bool success);
function approve(address _spender, uint _value) returns (bool success);
function allowance(address _owner, address _spender) constant returns (uint remaining);
event Transfer(address indexed _from, address indexed _to, uint _value);
event Approval(address indexed _owner, address indexed _spender, uint _value);
}
totalSupply()
这个方法返回通证总的发行量。
balanceOf()
这个方法返回查询账户的通证余额。
transfer()
这个方法用来从智能合约地址里转账通证到指定账户。
approve()
这个方法用来授权第三方(例如DAPP合约)从通证拥有者账户转账通证。
transferFrom()
这个方法可供第三方从通证拥有者账户转账通证。需要配合approve()方法使用。
allowance()
这个方法用来查询可供第三方转账的查询账户的通证余额。
2 个事件函数
当通证被成功转账后,会触发转账事件。
event Transfer(address indexed _from, address indexed _to, uint256 _value)
当approval()方法被成功调用后,会触发Approval事件。
event Approval(address indexed _owner, address indexed _spender, uint256 _value)
合约示例
pragma solidity ^0.4.16;
interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external; }
contract TokenTRC20 {
// Public variables of the token
string public name;
string public symbol;
uint8 public decimals = 18;
// 18 decimals is the strongly suggested default, avoid changing it
uint256 public totalSupply;
// This creates an array with all balances
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;
// This generates a public event on the blockchain that will notify clients
event Transfer(address indexed from, address indexed to, uint256 value);
// This notifies clients about the amount burnt
event Burn(address indexed from, uint256 value);
/**
* Constructor function
*
* Initializes contract with initial supply tokens to the creator of the contract
*/
function TokenTRC20(
uint256 initialSupply,
string tokenName,
string tokenSymbol
) public {
totalSupply = initialSupply * 10 ** uint256(decimals); // Update total supply with the decimal amount
balanceOf[msg.sender] = totalSupply; // Give the creator all initial tokens
name = tokenName; // Set the name for display purposes
symbol = tokenSymbol; // Set the symbol for display purposes
}
/**
* Internal transfer, only can be called by this contract
*/
function _transfer(address _from, address _to, uint _value) internal {
// Prevent transfer to 0x0 address. Use burn() instead
require(_to != 0x0);
// Check if the sender has enough
require(balanceOf[_from] >= _value);
// Check for overflows
require(balanceOf[_to] + _value >= balanceOf[_to]);
// Save this for an assertion in the future
uint previousBalances = balanceOf[_from] + balanceOf[_to];
// Subtract from the sender
balanceOf[_from] -= _value;
// Add the same to the recipient
balanceOf[_to] += _value;
emit Transfer(_from, _to, _value);
// Asserts are used to use static analysis to find bugs in your code. They should never fail
assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
}
/**
* Transfer tokens
*
* Send `_value` tokens to `_to` from your account
*
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transfer(address _to, uint256 _value) public {
_transfer(msg.sender, _to, _value);
}
/**
* Transfer tokens from other address
*
* Send `_value` tokens to `_to` on behalf of `_from`
*
* @param _from The address of the sender
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(_value <= allowance[_from][msg.sender]); // Check allowance
allowance[_from][msg.sender] -= _value;
_transfer(_from, _to, _value);
return true;
}
/**
* Set allowance for other address
*
* Allows `_spender` to spend no more than `_value` tokens on your behalf
*
* @param _spender The address authorized to spend
* @param _value the max amount they can spend
*/
function approve(address _spender, uint256 _value) public
returns (bool success) {
allowance[msg.sender][_spender] = _value;
return true;
}
/**
* Set allowance for other address and notify
*
* Allows `_spender` to spend no more than `_value` tokens on your behalf, and then ping the contract about it
*
* @param _spender The address authorized to spend
* @param _value the max amount they can spend
* @param _extraData some extra information to send to the approved contract
*/
function approveAndCall(address _spender, uint256 _value, bytes _extraData)
public
returns (bool success) {
tokenRecipient spender = tokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
}
/**
* Destroy tokens
*
* Remove `_value` tokens from the system irreversibly
*
* @param _value the amount of money to burn
*/
function burn(uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value); // Check if the sender has enough
balanceOf[msg.sender] -= _value; // Subtract from the sender
totalSupply -= _value; // Updates totalSupply
emit Burn(msg.sender, _value);
return true;
}
/**
* Destroy tokens from other account
*
* Remove `_value` tokens from the system irreversibly on behalf of `_from`.
*
* @param _from the address of the sender
* @param _value the amount of money to burn
*/
function burnFrom(address _from, uint256 _value) public returns (bool success) {
require(balanceOf[_from] >= _value); // Check if the targeted balance is enough
require(_value <= allowance[_from][msg.sender]); // Check allowance
balanceOf[_from] -= _value; // Subtract from the targeted balance
allowance[_from][msg.sender] -= _value; // Subtract from the sender's allowance
totalSupply -= _value; // Update totalSupply
emit Burn(_from, _value);
return true;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
}
Next Previous
就是这么简单,你学会了吗?
B. web3接收链上转账怎么选择网络
web3接收链上转账,选择不同类型网络,转账的速度和手续费也宴衡是不一样的。如果你希望可以快速转账,追求的是速度,那就应该选择波场区块链的TRC20链类型。波场网络TPS达到1500TPS,目前来说转账最快到高弯账的是波场USDT。
如果你在意的是手续费,希望转账手续费能低一些,那也应该选择TRC20链类型。因为TRC20链类型转账,晌念做手续费为0。而ERC20链类型的手续费是2USDT,大概是14块钱。OMIN链类型手续费最贵,需要5个USDT,大概是35人民币。
C. 波场的代币有几种
波场旗下的察裤代币有7种败镇简,分别是TRX、BTT、JST、NFT、USDD(TRC-20)、USDT(TRC-20)和TUSD(TRC-20)。前4种是波场的原生代币,后面3种就是波场发行或者旅顷是合作发行的稳定币。
D. NFT币如何存imTOKen
可以在 imToken 的钱包管理界面查看对应的钱包地址,将该地址输入交易所的提币地址中即可提币。
imToken 目前支持 ETH、BTC、ATOM、EOS、TRX、CKB、BCH、LTC、KSM、DOT、FIL 这 11 条链的资产存储。但不是每个币都有单独的钱包,前面提到的这 11 个币统称为主网币。
市场上成千上万的数字资产可以分为两大类:主网币和代币。只有主网币才有以它自己的名字命名的,为它量身定制的钱包,而代币则只能寄宿在主网币的钱包里。
注意imToken 1.0 系列版本已于 2020.11.11 停止服务,请尽快升级至 imToken 2.0 版本。
以 USDT 代币为例
比如 USDT 代币,它在比特币钱包、以太坊钱包和波场等钱包里都可以进行存储。你在交易所提 USDT 时需要进行链名称的选择,有三个选项:ERC-20、TRC-20 和 OMNI。这三个链名称分别对应着以太坊钱包、波场钱包和比特币钱包。
USDT 是租住在主网币家里的代币,既然是租房子,就得签署租房协议。不同的房东有不同的要求,USDT 租住在比特币家里的租房协议叫 OMNI,租住在以太币家里的租房协议叫 ERC-20,租住在波场币家里的租房协议叫 TRC-20。
若 USDT 提到 BTC 钱包,则选择 OMNI 格式,输入 BTC 钱包地址;若 USDT 提到 ETH 钱包,则选择 ERC-20 格式,输入 ETH 钱包地址;若 USDT 提到 TRX 钱包,则选择 TRC20 格式,输入 TRX 钱包地址。
E. trc20怎么转账
同区块转账工具,TRX和TRC20代币批量转账操作方法,批量转嫌洞账操作非芹瞎枯常简单。首先输入相关钱包的信息,合约地址栏输入要转出的TRC20代币合约,发起地址为该转出钱包的地址,转账数量栏有两种情况,一种转出固定数量代币,另一种是不同钱包转不同神瞎的数量代币。
F. trc20链接能修改嘛
能。
可以直接在trc20链里面添加usdt合约,可以添加trc20钱包,然后再添加usdt智能合约。同样的也要转到trc20的usdt地址,但需要使用trx这个币作为能量费。
TRC20协议是由ERC20转化而来,基于TRC20协议的稳定币也发行了,基于TRC20的USDT代币(USDT-TRON)能够实现与基于波场的协议和去中心化应用之间的互通性。
G. 关于USDT的一点实用小科普
想必每一位币东们都有试过去交易所买过不少辣鸡、山寨、CX、空气币了。
除了一些主流的加密货币如BTC、ETH、EOS交易对外,都会看见另一种稳定币,即USDT。
以法币本位看,USDT是一种比较方便小韭菜们入金兑换其它加密货币的一种方式。因为更容易看到底跌了涨了。
那么到底什么是USDT呢?
USDT是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD(下称USDT),号称1USDT=1美元,也就是锚定美元。方便用户可以随时使用法币对其进行1:1兑换。
我们不知道Tether公司有没有严格遵守1:1准备金保证,发一枚就去银行存1美金。目前来看幺蛾子不少,不管它到底会不会雷暴,USDT也还是目前最主流的稳定币之一,你不服也不行,该用还得用,悠着点就是了。既然早晚得出事,我们也只能中午的时候偷偷用了。
扯了大半天,今天主要讲的是关于USDT的种类。
没错,USDT运行到今天,已经不仅仅在一个区块链网络上运行了。一个不留神你的USDT很容易就打水漂了。
USDT目前有运行在三个区块链网络里,其中包括OMNI、ERC20、还有TRC20。它们分别对应于比特币网络、以太坊网络、以及波场网络。
2014年,USDT是首先在比特币区块链上基于OMNI Layer协议发行的。从此获得先发优势一局夺得大半个加密货币的稳定币市场。
2018年,以太坊网络上,基于ERC-20协议发行的USDT正式发行。
2019年,同样在波场网络中,通过TRC20协议发行了波场版本的USDT,也就是USDT-TRON20。
这三个版本的稳定币USDT-OMNI(美元)、USDT-ERC20(以太坊)、USDT-TRC20(波场)是采用不同的协议,属于不同的区块链网络。
最重要的是,它们之间是不兼容的,并不能互相转账。
划重点:
重要的事情说三遍。
那么怎么区分它们是不同网络呢?很简单,就看地址开头。
USDT-OMNI(比特币网络)地址是以1开头
USDT-ERC20(以太坊)地址是以0x开头
USDT-TRC20(波场)地址是以T开头
切记,别再转错了。
那么关于优劣方面,由于OMNI是基于比特币网络的,其安全系数比较高,而且支持更多的交易所,基本上所有交易所上线的第一个USDT版本都会是OMNI版本的,如果只有一个版本的那就是它了。
除此之外,我们考虑的另一个因素就是转账的速度,OMNI的速度很慢,以太坊版本的USDT-ERC20速度上会有一些提高,矿工费有多有少,视拥堵程度。个人觉得如果速度没有很大的提升,而转账费用也没有足够的优势的话,用的人应该不多,目前看也是如此。
来自波场版本的USDT-TRC20号称零转账费,秒级到账,目前接入的交易所貌似也不多。如果真的体验有更大的提升相信也有部分用户选择。
相较于USDT这种黑历史很多,幺蛾子也多,早晚雷暴的稳定币,个人还是建议早点换其它诸如Dai之类的去中心化的稳定币好过。
H. trx和trc20一样吗
是一样的。
USDT常用的一共有三种链,分别是基于比特币网络的OMNI协议、以太坊网络的ERC-20协议和TRX(波场)网络的TRC-20协议。
三种类型的USDT在交易所内并没有差别,但在链上互不兼容、不能相互转账。也就是说OMNI上的USDT是无法转到另外两条链上的,所以在交易所充提USDT时一定要链链对应。
USDT-OMNI(基于比特币网络的USDT)USDT-OMNI诞生于2014年,充币地址是BTC地址,充提币走BTC网络。因为转账需要通过BTC网络,因此每一笔转账需要支付少量的比特币作为矿工费。
OMNI-USDT于比特币网络的链上,黑客攻击的成本很高,所以资产相对安全性较高。但是其交易速度非常慢,已经无法满足当今加密交易市场的需求,但很多大宗交易还是会倾向于OMNI-USDT。USDT-ERC20(基于以太坊网络的USDT)
I. trx转账需要多少能量
转账1个TRR代币大概需要315能量。
转账TRC20代币或交易等,都会消耗能量和带宽。比如以转账TRR代币为例:转账89个TRR代币需要消耗345带宽和28031能量,该地址没有足够的能量,则抵扣了3.92434TRX作为手续费。
众所周知,波场代币主要分为TRC10和TRC20代币,资源主要分为三种:能量、带宽和存储。在波场独特的网络中,存储几乎是无限的。那么能量和带宽是有限的,用完了就需要花TRX来租赁或者冻结获得能量和带宽。
RC10代币是一种是通过TRON公链内置的通证。主要消耗带宽。
TRC20代币是在TRON区块链上通过部署智能合约的方式来发行资产的一套标准,主要消耗能量和带宽。
每个波场账户每天拥有1500带宽,用完会自动慢慢恢复至1500.目前转账TRC10代币一笔大概需要消耗300-400带宽,即每个账户每天可以免费转3-4笔TRC10代币,比如TRX。如果当日转账次数过多,没有足够的带宽来消耗,就会直接抵扣账户上面的TRX估为手续费。
能量是比较“珍贵”的资源了,账户每天没有免费的能量,如果想要获得能量有2种方式可以获得:
1、冻结TRX获得能量。TRON网络中冻结1万TRX,可以获得257431能量。
2、租赁。通过波场助手tronenergy.app能量平台,用1TRX可以租赁10800能量。
J. imtoken钱包支持哪些虚拟币交易
imtoken钱包支持哪些虚拟币交易2022,imtoken钱包型冲软件中有很多的功能,其中很多人在软件中知道,这个钱包都支持哪些虚拟币的交易,下面跟着小编一起来看看吧,希望能帮到你。
imtoken钱包支持哪些虚拟币交易2022
1:目前位置支持一下这咐租滚些虚拟币的交易,衡余你们可以看看有没有自己喜欢的或者自己投资的货币在内;
2:Ethereum:对应ETH钱包,可管理ETH、ERC20标准代币和ERC721标准代币
3:Bitcoin:对应BTC钱包,可管理BTC和OmniUSDT
4:EOS:对应EOS钱包,可管理EOS和EOS链上代币
5:Cosmos:对应ATOM钱包,可管理ATOM
6:TRON:对应TRX钱包,可管理TRX、TRC10标准代币和TRC20标准代币
7:Nervos:对应CKB钱包,可管理CKB
8:Litecoin:对应LTC钱包,可管理LTC
9:BitcoinCash:对应BCH钱包,可管理BCH
10:Polkadot:对应DOT钱包,可管理DOT
11:Kusama:对应KSM钱包,可管理KSM
12:Filecoin:对应FIL钱包,可管理FIL
13:Tezos:对应XTZ钱包,可管理XTZ
14:可以这么说imToken2.0所支持的币种有:BTC、ETH、USDT、EOS和所有在以太坊和EOS发行的代币和NFT收藏品。