cityofzion/neo-php

NEO 区块链的 PHP 实现

1.0.0 2018-12-03 16:43 UTC

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));

查看本文档中NEP-5资产常量以获取正确的资产

获取全局数据

//get global data
print_r($cmcObject->getGlobalData());

查看本文档中NEP-5资产常量以获取正确的资产

创建者

查看Neodius

许可协议MIT License

享受吧!