波场TRON创建用户和为他人以及为自己冻结代币
2021-05-15 10:35:21 阅读:2615
我这里只讲一下windows下的安装,linux和windows基本一样,所需的软件也都一样,大家看完windows教程后,linux版本也就触类旁通了.当然,linux中我也会简单说几句.言归正传,开始:第一步:你需要安装composer,win下安装非常方便,直接去composer官网下载最新版,安装即可,但是,要注意的几个地方分别是:1.php版本要在5.3.2以上2.安装过程中需要选择php.exe的路径,也就是安装中的:"Choosethecommand-linePHPyouwanttobe"这个选项然后下一步下一步安装即可,安装完成之后,看一下环境变量中有没有composer和php的路径,如果没有,请加上php.exe的路径和composer安装的路径到环境变量.什么????你不知道环境变量?!!!此教程对你来说已经结束,出门左拐,慢走不送.然后,再把composer切换成中国区镜像就行了:composerconfig-grepo.packagistcomposerhttps://mirrors.aliyun.com/composer/这第一步,在linux中的话,那就简单了,下面三行代码逐行复制执行即可(如果下载失败,请重试,国外地址不稳定):curl-sShttps://getcomposer.org/installer|php
mvcomposer.phar/usr/local/bin/composer
composerconfig-grepo.packagistcomposerhttps://packagist.phpcomposer.com上面三行,分别是:"下载composer""移动composer到可执行环境下""使用composer国内镜像(国外很慢呢)"第二步:查看composer是否安装成功,linux和win同步,如下:composer-v如果出现版本号,说明安装成功.第三步:开启你电脑的gmp拓展,linux的不多说了,网上有的是教程,我着重说一下win的.首先找到你的php版本所在目录的ext文件夹,里面有所有的php的拓展,看看有没有php_gmp.dll这个文件,如果有,找到php.ini,看看里面的gmp拓展有没有打开,如果没有打开,那就打开就行了.如果没有,也好说,去https://windows.php.net/downloads/releases/archives/地址里面,找到你那个版本的php和你电脑对应的位数(一般是64位或者32位,我的电脑,属性),如果是64位就下64位的php包,如果是32位就下x86的包,下载后,解压zip得到一个完整的php版本,里面有gpm拓展,把里面的php_gmp.dll放到你的php,然后在php.ini中添加这个拓展就行了.补充:如果你是linux还安装了宝塔,恭喜你,php图形页面拓展位置,找到gmp拓展,点击一键安装,重启php-fpm就行了.第三步:找到你项目根目录,安装tron就行了.安装方式有两种,一种是直接修改根目录的composer.json,在composer里面加上两行:"iexbase/tron-api":"^3.1",
"guzzlehttp/guzzle":"^7.3"然后在dos中切换到根目录路径,运行composerupdate另一种方式也是切换到根目录路径,先composerrequireiexbase/tron-api再:composerrequireguzzlehttp/guzzle然后运行composerupdate,安装tron插件至此,tron就安装完了.(当然,现实中经常会出现composerupdate失败的情况,请自寻百度google来解决出现的错误码,因为错误类型太多,不一一列举,但是99%的情况是composer.json文件里面参数有问题)第二种方式为推荐安装方式,因为第一种安装的是固定版本,第二种安装方式是最新版本.安装完之后那就是调用了.接下来说说怎么调用tron接口来生成用户\为自己冻结代币\为他人冻结代币tron接口使用篇:我这边用的是tp,所以我就用tp为使用方法说明tron的接口调用.首先在项目的application里面,找到index里面的controller文件夹,复制index.php,改名为Test.php,并写入内容:这样就可以调用创建用户方法了.如果是为自己冻结,也是在该文件中,调用方法如下:/*为自己冻结*/
functionFrees(){
$tron=newTron();
$tron->setPrivateKey('4CDEC8801AC71310D1BD84E520343C1D731A940E95C4188A2A0FEA9E97F12345');
//第一个参数amount是
$generate=$tron->freezeBalance(1,3,'BANDWIDTH','TNjtED4x69Ct2wRVmJLhSfJRyJZiCFbSN2');
echo'';
print_R($generate);exit;
}这样就给自己冻结了.这里要注意,里面写的privatekey和账号,都是我随便添加的,不是真实的.你要是用的时候一定要换成你自己的账号和privatekey同样,为他人冻结也是一个样,不过需要自己改一下接口,我就改了一个,把上面的freezeBalance这个方法的文件中,找到freezebalance这个方法,复制一份,改成允许传入其他账号的方法,我改好了,路径为:找到tp目录里面的vendor文件夹,找到iexbase/tron-api/src/Tron.php,找到freezebalance里面,复制freezebalance为freezebalanceother,内容改为:/**2021-04-19为他人冻结*/
publicfunctionfreezeBalanceother(float$amount=0,int$duration=3,string$resource='BANDWIDTH',string$owner_address=null,string$reciveuser=null)
{
if($owner_address==null){
$owner_address=$this->address['hex'];
}
if($reciveuser==null){
$reciveuser=$this->address['hex'];
}
$freeze=$this->transactionBuilder->freezeBalanceother($amount,$duration,$resource,$owner_address,$reciveuser);
$signedTransaction=$this->signTransaction($freeze);
$response=$this->sendRawTransaction($signedTransaction);
returnarray_merge($response,$signedTransaction);
},然后上面这个方法还调用了freezeBalance,所以还需要进入:iexbase/tron-api/src/TransCtionBuilder里面,复制freezeBalance为freezeBalanceother,然后改内容为:/**2021-04-19为他人冻结*/
publicfunctionfreezeBalanceother(float$amount=0,int$duration=3,string$resource='BANDWIDTH',string$owner_address=null,string$reciveuser=null)
{
if($owner_address==null){
$owner_address=$this->address['hex'];
}
if($reciveuser==null){
$reciveuser=$this->address['hex'];
}
$freeze=$this->transactionBuilder->freezeBalanceother($amount,$duration,$resource,$owner_address,$reciveuser);
$signedTransaction=$this->signTransaction($freeze);
$response=$this->sendRawTransaction($signedTransaction);
returnarray_merge($response,$signedTransaction);
}然后test.php中正常调用即可.为了防止你不会写,我把调用接口给他人转账的方法贴出来:/*为他人冻结*/
functionfreesother(){
$tron=newTron();
$tron->setPrivateKey('4CDEC8801AC71310D1BD84E520343C1D731A940E95C4188A2A0FEA9E97F12345');
$generate=$tron->freezeBalanceother(1,3,'ENERGY','TNjtED4x69Ct2wRVmJLhSfJRyJZiCFbWK5','TBRRMXTdskcfKgiTrkQXzMH4H844ErCHUi');
echo'';
print_R($generate);exit;
}