decentfoundation/dcorephp-sdk 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

decentfoundation/dcorephp-sdk

Composer 安装命令:

composer require decentfoundation/dcorephp-sdk

包简介

DCore PHP SDK library

README 文档

README

Set of APIs for accessing the DCore Blockchain.
If you are looking for other platforms you can find info below.

Requirements

Instalation

composer.json

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/decentfoundation/dcorephp-sdk"
        }
    ],
    "require": {
        "decentfoundation/dcorephp-sdk": "dev-master"
    }
}
composer require decentfoundation/dcorephp-sdk

Usage

You can find example project with SDK usage here.

You can find developer documentation for latest release here.

DCore API initialization

$dcoreApi = new \DCorePHP\DCoreApi(
    'https://testnet.dcore.io/',
    'wss://testnet-socket.dcore.io'
);

Look at ./src/DCoreApi.php and ./src/Sdk/*Interface.php to see all available methods and their return values.

Get account

$account = $dcoreApi->getAccountApi()->get(new ChainObject('1.2.34'));
$account = $dcoreApi->getAccountApi()->getByName('Your test account name');

Create account

There are two ways to create account in DCore network: $dcoreApi->getAccountApi()->registerAccount() and $dcoreApi->getAccountApi()->createAccountWithBrainKey(). Recommended way to create account is using $dcoreApi->getAccountApi()->registerAccount() method, because it has an option to specify keys. You can use $dcoreApi->getAccountApi()->createAccountWithBrainKey(), but keys generated from $brainkey for $publicOwnerKeyWif, $publicActiveKeyWif and $publicMemoKeyWif will be the same, which is not recommended for security reasons.

$dcoreApi->getAccountApi()->registerAccount(
    'Your test account name',
    'DCT6MA5TQQ6UbMyMaLPmPXE2Syh5G3ZVhv5SbFedqLPqdFChSeqTz',
    'DCT6MA5TQQ6UbMyMaLPmPXE2Syh5G3ZVhv5SbFedqLPqdFChSeqTz',
    'DCT6MA5TQQ6UbMyMaLPmPXE2Syh5G3ZVhv5SbFedqLPqdFChSeqTz',
    new ChainObject('1.2.34'),
    '5Jd7zdvxXYNdUfnEXt5XokrE3zwJSs734yQ36a1YaqioRTGGLtn'
);

Create transfer

$dcoreApi->getAccountApi()->transfer(
    new Credentials(new ChainObject('1.2.34'), '5Jd7zdvxXYNdUfnEXt5XokrE3zwJSs734yQ36a1YaqioRTGGLtn'),
    '1.2.35',
    (new AssetAmount())->setAmount(1500000),
    'your secret message',
    false
);

Create content

$content = new SubmitContent();
$content
    ->setUri($randomUri)
    ->setCoauthors([])
    ->setCustodyData(null)
    ->setHash('2222222222222222222222222222222222222222')
    ->setKeyParts([])
    ->setSeeders([])
    ->setQuorum(0)
    ->setSize(10000)
    ->setSynopsis(json_encode([
        'title' => 'Your content title',
        'description' => 'Your content description',
        'content_type_id' => '1.2.3'
    ]))
    ->setExpiration('2019-05-28T13:32:34+00:00')
    ->setPrice([(new RegionalPrice)->setPrice((new AssetAmount())->setAmount(1000))->setRegion(1)]);

$credentials = new Credentials(
    new ChainObject('1.2.34'),
    ECKeyPair::fromBase58(DCoreSDKTest::PRIVATE_KEY_1)
);

$dcoreApi->getContentApi()->create(
    $content,
    $credentials,
    (new AssetAmount())->setAmount(1000)->setAssetId('1.3.0'),
    (new AssetAmount())->setAmount(1000)->setAssetId('1.3.0')
);

Search content

$contents = $dcoreApi->getContentApi()->findAll(
    'search term',
    '-rating'
);

NFT

NftModels require @Type("type") annotation for correct functioning. GMP library is also necessary when working with integers.

NftModel

class NftApple extends NftModel
{
    /**
     * @Type("integer")
     */
    public $size;
    /**
     * @Type("string")
     * @Unique
     */
    public $color;
    /**
     * @Type("boolean")
     * @Modifiable("both")
     */
    public $eaten;

    public function __construct($size, $color, $eaten)
    {
        $this->size = gmp_init($size);
        $this->color = $color;
        $this->eaten = $eaten;
    }
}

Create NFT

$credentials = new Credentials(new ChainObject('1.2.27'), ECKeyPair::fromBase58('DCT6MA5TQQ6UbMyMaLPmPXE2Syh5G3ZVhv5SbFedqLPqdFChSeqTz'));
$dcoreApi->getNftApi()->create($credentials, 'APPLE', 100, false, 'an apple', NftApple::class, true);

More examples can be found in ./tests/Sdk/NftApiTest.php.

Development requirements & recommendations

PHPStorm configuration

Development & testing

git clone git@github.com:decentfoundation/dcorephp-sdk.git
cd dcorephp-sdk
docker-compose up -d
docker-compose exec php composer install --dev --prefer-dist --optimize-autoloader
docker-compose exec php ./vendor/bin/phpunit --bootstrap vendor/autoload.php tests

Official DCore SDKs for other platforms

统计信息

  • 总下载量: 48
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 9
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-only
  • 更新时间: 2019-03-26

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固