cityofzion / neo-php
NEO 区块链的 PHP 实现
This package is not auto-updated.
Last update: 2024-09-22 07:57:00 UTC
README
neo-php
NEO 区块链的 PHP SDK。
概述
目前它能做什么
- 通过 Composer 进行安装
- 创建和加密未加密钱包
- 创建和打开加密钱包
- 最小 NEP-5 交互(请求代币余额和智能合约参数工厂)
- 所有 RPC 函数都已集成。
- 地址验证
- 包含冷钱包生成器
- 集成 Coinmarketcap API
它将(应该)做什么
- 为 NEO、GAS 和 NEP-5 代币执行钱包交易
- 构建、部署和运行智能合约
- 还有很多
文档
目前除了这个 README 之外没有太多文档。我们可以使用它!如果你愿意帮忙,请发起 PR :)。 尽管有很多示例
寻求帮助或提供帮助
- 如果你遇到问题,请创建一个新的 问题。
- 或者在 NEO Discord 上 ping @Deanpress 或 @Woodehh。
- 欢迎 Pull requests。你可以帮助钱包功能、编写测试或文档,或在你认为很棒的其他特性上。
入门
要开始使用 neo-php,你需要安装 composer。准备好后,打开终端并输入
composer require cityofzion/neo-php @dev
从那里开始,包含自动加载器,你就可以使用所有 neo-php 的特性了。
钱包功能
neo-php 的钱包部分由具有多个功能的初始化器组成。
创建新的未加密钱包
$newWallet = new NeoPHP\NeoWallet();
打开未加密钱包
$wallet = new NeoPHP\NeoWallet("KzfUdP9MbsuL4Ejo1rTWve4JZfa7m1hc397JGXTHhNqJDAqMxZYu");
创建新的加密钱包
$wallet = new NeoPHP\NeoWallet(); $wallet->encryptWallet("passphrase");
打开加密钱包
$wallet = new NeoPHP\NeoWallet("6PYMFa9gMAcBrTaAs8JyDrtoGLqb45P8dnmUfVVNcfLd9xKUdffSNfKWKp","passphrase");
加密现有钱包
$wallet = new NeoPHP\NeoWallet("KzfUdP9MbsuL4Ejo1rTWve4JZfa7m1hc397JGXTHhNqJDAqMxZYu"); $wallet->encryptWallet("passphrase");
布尔值测试钱包是否为加密钱包
$wallet->isNEP2();
当 isNEP2() 时,获取加密地址的字符串
$wallet->getEncryptedKey();
获取初始化钱包的 WIF
$wallet->getWif();
获取初始化钱包的地址
$wallet->getAddress();
获取初始化钱包的密钥
$wallet->getPrivateKey()
最小 NEP-5 集成
我们正在开发 NEP5 集成。目前,我们可以使用指定地址请求大多数 NEP5 代币余额。
为地址请求 NEP-5 代币余额
$rpcObject = new NeoRPC(); $rpcObject->setNode("https://seed1.redpulse.com:10331"); \NeoPHP\NEP5::getTokenBalance($rpcObject,NeoPHP\NeoAssets::ASSET_ZPT,"AKDVzYGLczmykdtRaejgvWeZrvdkVEvQ1X"); \NeoPHP\NEP5::getTokenBalance($rpcObject,NeoPHP\NeoAssets::ASSET_TKY,"AKDVzYGLczmykdtRaejgvWeZrvdkVEvQ1X")
目前我们有以下“资产”,你可以请求其余额
RPC
RPC 是与不同区块链节点通信的方式。例如:我们用它来请求 NEP-5 代币的余额。
连接到 RPC 节点
$neo = new NeoRPC(); #use false as argument to go to testnet //$neo->setNode($neo->getFastestNode()); $neo->setNode("http://seed5.neo.org:10332");
使用 CityOfZion API 请求余额
$neo->getBalance($testAddress);
根据账户地址查询账户资产信息。
$neo->getAccountState($testAddress);
根据指定的资产编号查询资产信息。
$neo->getAssetState($neoAssetID);
返回主链最高块的哈希值。
$neo->getBestBlockHash();
根据指定的索引或哈希值返回相应的块信息。
$neo->getBlock("0x56adb8cc0de3e4fff7b8641988c83bfca214802d263495403055efdd437234c4"); $neo->getBlock(1533325);
获取主链中的块数。
$neo->getBlockCount();
计算声明交易金额,以便使用 sendrawtransaction 进行声明。
$neo->getBlockSysFee($neo->getBlockCount()-1);
根据指定的索引返回相应块的哈希值。
$neo->getBlockHash($neo->getBlockCount()-1);
获取节点的当前连接数。
$neo->getConnectionCount();
查询合约信息,根据合约脚本哈希。
$neo->getContractState("602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7");
在内存中获取未确认的交易列表。
$neo->getRawMemPool();
根据指定的哈希值返回相应的交易信息。
$neo->getRawTransaction("602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7",true);
查询合约信息,根据合约脚本哈希。
$neo->getStorage("c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b", "74657374");
根据指定的哈希和索引返回相应的交易输出信息(返回的找零)。
$neo->getTxOut("0e3c0f477d80acda1c45650b3260e2410287ef78c291f6e02f0214daca2bd2cf",0);
在NEO网络上广播交易。有多种交易类型,如网络协议文档中所述。
$transaction_id = ""; //A hexadecimal string that has been serialized, after the signed transaction in the program. $broadcastTransaction = $neo->sendRawTransaction($transaction_id); if ($broadcastTransaction) echo "Sent"; else echo "Hasn't been sent";
验证地址
if ($neo->validateAddress("AXCLjFvfi47R1sKLrebbRJnqWgbcsncfro")) echo "Address is valid"; else echo "Address is not valid";
NEO冷钱包生成器
您还可以运行cli-create-wallet-interactive.php示例来生成新的钱包。您可以在全新的虚拟且未连接的Linux发行版上这样做,进行干净的运行并保持您的钱包安全。
CoinMarketCap集成
Neo-PHP具有完整的CoinMarketCap API集成。
初始化对象
//setup coinmarketcap object $cmcObject = new \NeoPHP\CoinMarketCap(); //set currency, if not set it defaults to USD $cmcObject->setCurrency("EUR");
请求报价
print_r($cmcObject->getTicker());
参数是start和limit。类似于MySQL的start和limit。
请求特定货币的报价
//get ticket for asset GAS print_r($cmcObject->getTickerForAsset(\NeoPHP\Assets\NeoAssets::ASSET_GAS)); //get ticket for asset NEO print_r($cmcObject->getTickerForAsset(\NeoPHP\Assets\NeoAssets::ASSET_NEO));
获取全局数据
//get global data print_r($cmcObject->getGlobalData());
创建者
-
Benjamin de Bos (LinkedIn) - Neodius (NEO区块链应用) & ITSVision
-
Dean van Dugteren (LinkedIn) - NEO dApp Starter Kit, Vidiato, Click.DJ
查看Neodius
许可协议MIT License
享受吧!