ledgefarm/ledgefarmcore

Ledgefarm 核心PHP库

1.1.190 2020-02-06 04:49 UTC

This package is auto-updated.

Last update: 2024-09-06 14:43:11 UTC


README

PHP包可用于操作应用与Wakandi网络通信。此包在Packagist服务器上可用,名称为"ledgefarm/ledgefarmcore" [ https://packagist.org.cn/ ],需要在您的应用程序中包含作为引用。

安装

创建一个名为composer.json的文件,或者如果您打算将此包用于现有项目,请在composer.json文件中添加依赖项。

{
        "require": {
                "ledgefarm/ledgefarmcore": "1.1.190",
                "guzzlehttp/guzzle": "~6.0"
        },
        "require-dev": {
            "phpunit/phpunit": "4.0.*"
        }
}

然后运行以下命令:

composer install

配置

此包使用一些配置来使用。因此,创建一个基本文件,并在该文件中创建一个构造方法并设置这些配置。

use Ledgefarm\LedgefarmCore\LedgefarmCore;

 function __construct()
 {
         LedgefarmCore::setGlobalConfigurations(
            'lf_core_test_6847437634763763476343763376237632276',
            'https://LedgefarmCore.com/api/v2',
            'op1.crt',
            'op1.key',
            'abcd1234'
        );
 }

这些设置用于使应用程序与Ledgefarm核心交互。

  • ApiKey:这是每个操作员的唯一密钥,用于验证操作员在每个请求中的身份。

  • LedgefarmApiUrl:这是Ledgefarm核心API的托管URL。此URL应以应用程序的版本结尾,即 http://host:port/api/[version]/。目前,当前版本为v1。

  • CertCrtPath:这是证书crt文件的路径。在设置Ledgefarm核心时提供此文件。Ledgefarm API通过客户端证书身份验证进行保护。每个操作员将获得一个证书以与Ledgefarm API交互。必须提供此证书以与Ledgefarm API交互。

  • CertKeyPath:这是证书密钥文件的路径。在设置Ledgefarm核心时提供此文件。Ledgefarm API通过客户端证书身份验证进行保护。每个操作员将获得一个证书以与Ledgefarm API交互。必须提供此证书以与Ledgefarm API交互。

  • CertPassphrase:这是用于证书文件的密钥。客户端证书受密码短语保护。必须提供证书的密码短语以与Ledgefarm API交互。

服务

此包中可用的服务

  • 钱包服务
  • 交易服务
  • 操作员服务
  • 令牌服务

用法

钱包服务

钱包服务用于执行与钱包相关的所有操作,例如创建钱包、锁定和解锁钱包、获取钱包数据等。

方法

  • 创建:此函数用于创建钱包。您需要传递要创建的钱包的用户名(Walletname)以及有关用户的基本信息以使该钱包可供其他操作员使用。作为响应,包将返回钱包地址和该钱包的访问密钥。此访问密钥将用于使用此钱包的进一步操作。
require 'vendor/autoload.php';

use Ledgefarm\LedgefarmCore\Wallet;
use Ledgefarm\LedgefarmCore\Fee;
use Ledgefarm\LedgefarmCore\Operator;
use Ledgefarm\LedgefarmCore\Token;
use Ledgefarm\LedgefarmCore\Transaction;
use SebastianBergmann\Exporter\Exception;

public $feeObj;

class Client {
    
    public function __construct()
    {
            $this->feeObj = new Fee('q1w2e37ur4t6', '0.1', 'operator fee');
    }

    public function create()
    {
            try
            {
                $wallet = new Wallet('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
                $resp = $wallet->create('q1w2e37ur4t5', 'test', 'test@test.com', '+91', '12345678', 'avatar', true);
                print_r($resp);
            }
            catch(Exception $e)
            {
                echo $e->getMessage(); 
            }
    }
}
  • 获取:此函数用于通过钱包名称获取特定钱包的信息。需要使用管理员访问密钥来获取用户的钱包。
public function get()
{
        try
        {
            $wallet = new Wallet('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $wallet->get('q1w2e37ur4t5');
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 获取所有:此函数用于获取与操作员注册的所有钱包的列表。在此需要传递页面大小(pagesize)和偏移量(起始索引位置)以获取分页记录。需要使用管理员访问密钥来获取钱包列表。例如,如果我们有30条记录,页面大小为10,则需要通过偏移量1、11、21进行3次调用,每次请求的页面大小为10。
public function getAll()
{
        try
        {
            $wallet = new Wallet('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $wallet->getAll(10, 1);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 更新:此函数用于更新钱包。操作员需要传递要更新的钱包地址以及需要更新的信息。需要管理员访问密钥来解锁钱包。
public function update()
{
        try
        {
            $wallet = new Wallet('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $wallet->update('q1w2e37ur4t5', 'testUser', 'test@test.com', '+91', '12345678', 'avatar', true, false);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 搜索:此功能用于搜索钱包。用户可以使用钱包地址、电话号码和电子邮件搜索钱包。在目录服务中搜索钱包需要管理员访问密钥。
public function search()
{
        try
        {
            $wallet = new Wallet('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $wallet->search('12345678', '+91');
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}

操作员服务

操作员服务用于执行与全球网络相关的所有操作。这包括获取(操作员的钱包余额)、ownedToken和issuedToken。

方法

  • 获取:此功能用于获取全球网络中操作员的钱包余额。获取操作员余额需要使用管理员访问密钥。
public function get()
{
        try
        {
            $operator = new Operator('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $operator->get();
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • OwnedToken:此功能用于获取从另一个操作员处获取多少代币的信息。获取代币信息需要使用管理员访问密钥。
public function ownedToken()
{
        try
        {
            $operator = new Operator('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $operator->ownedToken();
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • IssuedToken:此功能用于获取操作员在全局网络中向其他操作员转移的代币数量信息。获取代币信息需要使用管理员访问密钥。
public function issuedToken()
{
        try
        {
            $operator = new Operator('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $operator->issuedToken();
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}

令牌服务

代币服务用于执行与代币相关的所有操作。这包括发行、转移、提现和请求代币等。

方法

  • 发行:此功能用于向用户发行代币。在此功能中,需要传递用户钱包地址、代币名称、数量以及发行代币所需的所有适用费用。向用户发行代币需要使用管理员访问密钥。
public function issue()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $feeArray = array($this->feeObj);
            $resp = $token->issue('q1w2e37ur4t5', 'USD', 1, $feeArray);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 转移:此功能用于将代币从一名用户转移到另一名用户。在此功能中,需要传递接收代币的用户钱包地址、代币名称、数量以及转移代币所需的所有适用费用。在此处需要传递用户的访问密钥(发送方)以从钱包转移到钱包。
public function transfer()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dd');
            $feeArray = array($this->feeObj);
            $resp = $token->transfer('q1w2e37ur4t5', 'USD', 1, $feeArray);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 批量转移:此功能用于将代币从一名钱包转移到多个钱包列表。操作员需要传递需要转移代币的钱包地址、代币名称、数量以及转移代币到钱包所需的所有适用费用。在此处需要传递钱包的访问令牌(发送方)以从钱包转移代币。
public function batchTransfer()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dd');
            $feeArray = array($this->feeObj);
            $batchTransferArray = array($this->batchTransferObj);
            $resp = $token->batchTransfer('USD', 10, 'Transfer', $feeArray, $batchTransferArray);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 提现:此功能用于从用户提现代币。在此功能中,需要传递需要提现代币的用户钱包地址、代币名称、数量以及提现代币所需的所有适用费用。使用管理员访问密钥从用户的钱包提现代币。
public function withdraw()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $feeArray = array($this->feeObj);
            $resp = $token->withdraw('q1w2e37ur4t5', 'USD', 1, $feeArray);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 请求:此功能用于从其他用户请求代币。在此功能中,需要传递请求代币的用户钱包地址、代币名称和数量。在此处需要使用用户的访问密钥(请求发送方)向其他用户发送请求。
public function request()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dd');
            $resp = $token->request('q1w2e37ur4t5', 'USD', 1);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 接受:此功能用于接受其他用户的代币请求。在此功能中,需要传递代币请求ID和操作员收取的费用以批准代币请求。在此处需要使用用户的访问密钥(请求接收方)以批准请求。
public function accept()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dd');
            $feeArray = array($this->feeObj);
            $resp = $token->accept('lf_core_test_foe14124f6assf7sfas', $feeArray);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 拒绝:此功能用于拒绝其他用户的代币请求。在此功能中,需要传递代币请求ID以批准代币请求。在此处需要使用用户的访问密钥(请求接收方)以拒绝请求。
public function reject()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dd');
            $feeArray = array($this->feeObj);
            $resp = $token->reject('lf_core_test_foe14124f6assf7sfas');
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 获取:此功能用于获取代币的总供应量。在此处需要使用管理员访问密钥。
public function get()
{
        try
        {
            $token = new Token('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dd');
            $resp = $token->get('USD');
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}

交易服务

交易服务用于获取特定交易或一系列交易的信息。

方法

  • 获取所有:此功能用于获取操作员的所有交易列表。在此功能中,需要传递限制(每页记录数)和偏移量(起始索引位置)以获取分页记录。获取交易列表需要使用管理员访问密钥。例如,如果我们有30条记录,页面大小为10,则需要3次调用,分别以1、11、21为偏移量,10为页面大小。
public function getAll()
{
        try
        {
            $transaction = new Transaction('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $transaction->getAll(10, 1);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 获取:此函数用于获取操作员的交易。获取交易时需要使用管理员访问密钥。我们需要传递交易ID以获取交易详情。
public function get()
{
        try
        {
            $transaction = new Transaction('lf_core_test_445e4s5C453srtrtarg3s9sHsrtr34trqL4yjsWsD34sffarjtT1zdfp7dc');
            $resp = $transaction->get('ehruew3235dsfsh332');
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 通过令牌获取所有:此函数用于通过令牌获取操作员的所有交易列表。在此需要传递限制(每页大小)和偏移量(起始索引位置)以获取分页记录。获取交易列表时需要使用管理员访问密钥。例如,如果我们有30条记录,每页大小为10,则需要通过偏移量1, 11, 21和每页大小10进行3次调用。
public function getAllByToken()
{
        try
        {
            $transaction = new Transaction('xxxxxxxxxxxxxxxxxxxxxx');
            $limit = 10;
            $offset = 1;
            $resp = $transaction->getAllByToken('USD', $limit, $offset);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}
  • 通过钱包获取所有:此函数用于获取操作员的所有交易列表。在此需要传递限制(每页大小)和偏移量(起始索引位置)以获取分页记录。获取交易列表时需要使用管理员访问密钥。例如,如果我们有30条记录,每页大小为10,则需要通过偏移量1, 11, 21和每页大小10进行3次调用。
public function getAllByWallet()
{
        try
        {
            $transaction = new Transaction('xxxxxxxxxxxxxxxxxxxxxx');
            $limit = 10;
            $offset = 1;
            $resp = $transaction->getAllByWallet('abc@wallxxxx', $limit, $offset);
            print_r($resp);
        }
        catch(Exception $e)
        {
            echo $e->getMessage(); 
        }
}