digitalsloth / znn-php
zenon.network的JSON-RPC端点的PHP SDK
dev-main
2023-10-16 16:47 UTC
Requires
- php: >=8.2
- ext-json: *
- ext-mbstring: *
- ext-sodium: *
- bitwasp/bech32: ^0.0.1
- furqansiddiqui/bip39-mnemonic-php: ^0.1.7
- guzzlehttp/guzzle: ^7.0
- phpseclib/phpseclib: ^3.0
- simplito/elliptic-php: ^1.0
- textalk/websocket: ^1.5
Requires (Dev)
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-16 18:45:21 UTC
README
ZNN-PHP包允许您读取zenon.network中描述的JSON-RPC端点此处。它还提供了处理ABI数据的方法。
- RPC端点
- ABI解码
- ABI编码
- 钱包和密钥文件支持
- 单元测试
钱包和密钥文件支持仍在进行中。欢迎提交PR :)
需求
PHP 8.2及以后版本。
composer require digitalsloth/znn-php
使用方法
RPC设置
- 节点URL - 默认情况下,它将尝试连接到本地节点
127.0.0.1:35997
,但您可以传入任何公共节点URL。 - 抛出错误 - 您可以选择是否抛出错误,默认为
false
通过调用提供者和您想要的方法来创建一个新的$znn
实例。您可以访问以下列表中列出的所有accelerator
、pillar
、plasma
、sentinel
、stake
、swap
、token
、ledger
和stats
端点,这些端点可以通过$znn
实例访问。此处
// config $nodeUrl = 'ws://public.deeZNNodez.com:35998'; $throwErrors = true; // zenon client $znn = new \DigitalSloth\ZnnPhp\Zenon($nodeUrl, $throwErrors); // load all pillars $result = $znn->pillar->getAll(); if (! $result['status']) { die('Error loading data'); } echo $result['data']->count; foreach ($result['data']->list as $pillar) { var_dump($pillar); }
ABI编码/解码
创建一个新的$contract
实例以访问编码和解码方法
// pick a contract to work with $contract = new \DigitalSloth\ZnnPhp\Abi\Contracts\Accelerator(); $result = $contract->encode('CreateProject', ["Test", "Test", "Test.com", 1000000000, 10000000000]); $result = base64_encode($result); // d8BEtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7msoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlQL5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFRlc3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARUZXN0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIVGVzdC5jb20AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= $result = $contract->decode('CreateProject', base64_decode('d8BEtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7msoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlQL5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFRlc3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARUZXN0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIVGVzdC5jb20AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=')); var_dump($result); // ["Test","Test","Test.com","1000000000","10000000000"]