火币链对接

2021-05-18 09:21:08 阅读:1838

一、首先最好是使用composer去下载类库,这样简单、方便,如果真没有我可以把类库下载下来放到下面。1、在项目coposer.json中添加"aiwozhe/ethereum-client":"^1.1","aiwozhe/web3":"^2.0","kornrunner/ethereum-offline-raw-tx":"^0.2",以上三个直接在命令行里执行:composerupdatekrowinski/bcmath-extended这四个库是需要用到的,第四个我忘了什么版本了,你可以直接在命令行里写coposerrequirekrowinski/bcmath-extended,这样会下载最新版本。附件:2、然后就是一些主体的内容,我把写好的几个文件放到下面,这几个文件都放到项目里面能调用的地方,方便使用,要注意文件里的代码肯定需要修改,一些报错机制,命名空间等等都要改成自己所需要的。文件:这几个文件简单介绍一下,Defines.php主要是定义一些变量的文件;EthereumCallback.php是方法的回调文件可以简单的看一下;ethereumTrait.php这个文件是主要的逻辑文件,可以深入的研究一下,咱们现在只是用了里面几个方法;Heco.php这个文件可以说是这几个文件的入口,只要你的命名空间对,那么你项目里想查余额或者转账等操作只要引进这个文件,EthereumTrait.php里面的方法都可以调用。3、PHP需要7.1+,并且安装gmp拓展二、到这一步基本上需要的文件都齐了,接下来可以开始我们的项目了。1、创建账户地址上面绿框里的是几个调用示例,先说createAccount(),看下图调用(图中最顶上的箭头有错误):访问地址是在Heco.php里面设置的,https://docs.hecochain.com/#/mainnet(这个地址是火币文档地址,里面有测试网地址和主网地址可以查询)。返回数据就是一个地址和私钥,正式网的话要记好记住了,查询和转账都会用到。2:查询火币余额,查询合约(以usdt为例)查询火币:Heco::balance('0x3666331af85dd64bf7d7201c1cafdf2b50d3470d',false);查询usdtHeco::balanceOf('usdt','0x3666331af85dd64bf7d7201c1cafdf2b50d3470d',false)在查询余额之前,如果是测试网可以去下面的地址去领取测试币(https://scan-testnet.hecochain.com/faucet)(每个账号每个ip一天只能领取一次),领取之后就可以尽情的测试了。3:转账ht,转账usdt转账HTHeco::transfer("0x3666331af85dd64bf7d7201c1cafdf2b50d3470d",'c543ecaf16d6abf66cccf92f238ee6ce2b0d27bd0ecdec7a90bd662190e7699f','0xb1bb2cc2276ebfeafb83ffab5da238ebde6f2cf4','0.01')转账usdtHeco::transfer("0x3666331af85dd64bf7d7201c1cafdf2b50d3470d",'c543ecaf16d6abf66cccf92f238ee6ce2b0d27bd0ecdec7a90bd662190e7699f','0xb1bb2cc2276ebfeafb83ffab5da238ebde6f2cf4','10','usdt')两种转账非常相似,同样的一个方法,只是最后加一个参数即可。4、关于合约的查询或者转账会有一些小问题下面我说明一下上图中创建合约对象的时候需要传一个abi的json串,这个会根据不同的币种有不同的abi,可以去火币网查,这里我给下载几个;还有一个合约地址也是根据币种来填写的一个参数,测试网可以在领取测试币的地方查看合约地址。这个位置也有合约地址,一样的填写上就好,流程到此就结束了,有不明白的再讨论附件abi:一些附件和文件没有显示的请阅读此链接:http://note.youdao.com/s/HGzShZZd

FIL创建用户等相关接口

2021-05-17 17:37:17 阅读:3196

这篇文章主要是讲讲fil的接口调用,我们可以用来创建fil用户和调用相关接口.这里讲的是windows,linux就简单多了,也会提及.第一步,安装node.js,下载地址,nodejs官网,地址:http://nodejs.cn/download/,下载windows安装包,msi格式的就行,下一步下一步安装即可.安装过程,唯一要注意的地方就是路径不要有空格,不要是中文路径,不然会出现各种各样的未知问题,记住了吗?另外,安装完之后,一定要注意看看环境变量path里面有没有node地址,没有的话手动添加一下到环境变量.安装完成后,开始,运行,cmd,确定,输入node-v查看node的版本,看看node是否安装成功.记住,一定要重启dos窗口,不然安装的node不生效.这一步我的linux是centos7.9,所以使用linux安装node的命令是下面几行(一行行运行哦)wgethttps://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz xz-dnode-v9.3.0-linux-x64.tar.xztar-xfnode-v9.3.0-linux-x64.tar ln-s~/node-v9.3.0-linux-x64/bin/node/usr/bin/node ln-s~/node-v9.3.0-linux-x64/bin/npm/usr/bin/npm ln-s~/node-v9.3.0-linux-x64/bin/npm/usr/bin/npx安装完后,运行node-v查看node是否安装,运行npm,查看npm是否安装,运行npx,查看npx是否安装.第二步,安装python,去官网:www.python.org找到downloads,下载最新的python包,然后安装就可以了,安装中要注意的地方有一个:advancedoptions,这个一定要勾选,意思是允许所有用户使用python,下一步下一步的继续安装即可,同样,重启dos窗口,然后node一下,看看能不能进入node,如果不能,检查一下系统的环境变量,没有就手动添加一下.这一步中,如果是linux,安装方式如下:(请逐行执行):wgethttps://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz xz-dPython-3.6.1.tar.xz tar-xvfPython-3.6.1.tarcdPython-3.6.1 ./configure--prefix=/usr/local/python3.6--enable-optimizations make makeinstalllinux安装可能会缺失组件导致安装失败,你可以运行一下yumupgrade,还不行,就安装对应的缺少的组件,网上都有教程.另外,这个下载地址如果不能用了,网上百度一个最新的下载地址.这个,也是需要重启dos才能生效的,当然,同样的是,也要加到环境变量.全弄好之后,进行第三步,最关键的一步.我这里有fil的npm安装包,你可以找我要,同样,其他的node.js写的需要npm安装的,也是一个道理.安装方式如下:将node.js项目上传到项目根目录,cd进入这个目录,运行:npminstall,你会看到命令行刷刷的滚动,过一会就安装完了,这一步很少会报错,我安装过好多项目,只要nodepythonnpm都安装了,从来没见过报错.如果报错了,可能是你这个node.js的程序有问题吧.这样安装完之后,找到文件夹程序里的两个php,随便找个能访问的地方放下,拿tp举例,一般是放到application\index下,然后除了命名空间外,额外use几个方法,如下:useBCMathExtended\BC; useGuzzleHttp\Client; useGuzzleHttp\Exception\GuzzleException;然后就可以写方法调用了.因为linux和windows的npm安装后路径不一样,所以一定要注意,linux的node项目在linux执行,windows的项目在dos执行,不要在本地执行完了,放到服务器上,肯定不能用.这都是你电脑的环境编译的.最后调用方法就可以了,比如你随便找个位置,写一个方法调用创建fil的账号,方法里面代码如下:$account=Filecoin::createAccount(true);这样就可以调用到fil接口并创建一个用户.创建后存到数据库就行了,其他方法的话,那两个php文件里面都有.补充:fil的node.js包可以找我要.

波场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; }

上报错误