波场开发的实践总结:基础工具的使用,和合约的交互方法,单位转换和监听事件等。
-> 前往星空笔记
波场(Tron)开发指南
4 years ago by lemooljiang (73)
$3.27
- Past Payouts $3.27
- - Author $1.69
- - Curators $1.57
28 votes
- + nutbox.mine: $2.781 (23.3%)
- + exyle: $0.122 (6%)
- + ezzy: $0.097 (6%)
- + ace108: $0.085 (25%)
- + chinchilla: $0.079 (100%)
- + karja: $0.022 (3%)
- + dlike: $0.019 (6%)
- + accelerator: $0.012 (6%)
- + harkar: $0.010 (5%)
- + xiaoshancun: $0.006 (100%)
- + maxuve: $0.005 (6%)
- + lemooljiang: $0.004 (100%)
- + visionaer3003: $0.004 (5%)
- + tvb: $0.004 (15.86%)
- + ew-and-patterns: $0.003 (6%)
- + maxuvd: $0.002 (12%)
- + steem.leo: $0.002 (6%)
- + terry3t: $0.002 (100%)
- + fortune-master: $0.002 (100%)
- + passion-fruit: $0.002 (100%)
- … and 8 more
波场中得到的uint数据都是16进制(hex,如:[{"_hex":"0x0f4240"}]),如果在js中做加减乘除可以自动转换成10进制,也可以自动调整。
1 trx = 1000000 sun
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
开发文档 |
中文文档 |
开发入门 |
参考
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
货币
类似于solidity对ether的支持,波场虚拟机的代码支持的货币单位有trx和sun,其中1trx = 1000000 sun,大小写敏感,只支持小写。目前Tron-IDE支持trx和sun,在remix中,不支持trx和sun,如果使用ether、finney等单位时,注意换算(可能会发生溢出错误)。 我们推荐使用Tron-IDE代替remix进行tron智能合约的编写。
区块相关
block.blockhash(uint blockNumber) returns (bytes32):指定区块的区块哈希——仅可用于最新的 256 个区块且不包括当前区块;而 blocks 从 0.4.22 版本开始已经不推荐使用,由 blockhash(uint blockNumber) 代替
block.coinbase (address): 产当前区块的超级节点地址
block.difficulty (uint): 当前区块难度,波场不推荐使用,设置恒为0
block.gaslimit (uint): 当前区块 gas 限额,波场暂时不支持使用, 暂时设置为0
block.number (uint): 当前区块号
block.timestamp (uint): 当前区块以秒计的时间戳
gasleft() returns (uint256):剩余的 gas
msg.data (bytes): 完整的 calldata
msg.gas (uint): 剩余 gas - 自 0.4.21 版本开始已经不推荐使用,由 gesleft() 代替
msg.sender (address): 消息发送者(当前调用)
msg.sig (bytes4): calldata 的前 4 字节(也就是函数标识符)
msg.value (uint): 随消息发送的 sun 的数量
now (uint): 目前区块时间戳(block.timestamp)
tx.gasprice (uint): 交易的 gas 价格,波场不推荐使用,设置值恒为0
tx.origin (address): 交易发起者
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Tron-Web:JavaScript接口,用于提供常用的账户,地址,转账,合约相关操作。相当于Ethereum的web3js。
tron-box:提供合约编译,部署,测试的命令行工具。作用相当于Ethereum的truffle工具链。
tronLink,tronPay: 提供浏览器环境的钱包插件,为dapp提供便利和安全的执行环境,相当于Ethereum的MetaMask,Scatter。
tron-grid:社区维护的主网和测试网HTTP API接口,相当于Ethereum社区中的Infura。
Tron-IDE: 一款帮助开发者开发智能合约的在线编辑器。它具有模块化的特点,以插件的方式为开发者提供智能合约的编辑,编译,部署,调试等功能。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
用公钥P作为输入,计算SHA3得到结果H, 这里公钥长度为64字节,SHA3选用Keccak256。
取H的最后20字节,在前面填充一个字节0x41得到address。
对address进行basecheck计算得到最终地址,所有地址的第一个字符为T。
其中basecheck的计算过程为:首先对address计算sha256得到h1,再对h1计算sha256得到h2,取其前4字节作为check填充到address之后得到address||check,对其进行base58编码得到最终结果。
我们用的字符映射表为:
ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
在波场中地址格式为:"TPY1jv2wrnEHpQAxfQ7BbpyKsDQRZTYDPX"
16进制表示:"4194cdf62db7f02319ec3b9a4009ba60854a896072"
转换函数:tronWeb.address.fromHex(address) //16进制转base58
this.tronWeb.address.toHex(dd) //base58转16进制
eg:
NutboxsPeanuts:
(base58) TYuDs3D3RZVXKhfPocYSyDBV8rES3MEiSs
(hex) 41fb89f2d17db9b45988645908a623855d956d5ba9
注意:波场区块链底层仍是使用的16进制的方式,但是与前端交互的却是使用的base58
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
tronscan
TRC20通证和ERC20通证类似,不过因为编译的版本不一致,导致在波场中OpenZeppelin的库无法使用,只能使用原文件。通读下通证的代码,函数基本一致,倒也不用太过担心。这里是PNUT合约,大家可以参考。
TRC20通证合约布署上线后,还需要在tronscan中录入,然后才能上线justswap和poloni这样的DEX。如上图所示,几个输入的参数要和通证合约保持一致,否则无法录入成功!
几点说明:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
最多只花费多少个trx,单位是sun
文档说明
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit