shh_getMessages

This commit is contained in:
sc0Vu 2018-01-29 16:48:29 +08:00
parent 27277d2424
commit 5eb6015bf3
3 changed files with 141 additions and 1 deletions

View File

@ -0,0 +1,64 @@
<?php
/**
* This file is part of web3.php package.
*
* (c) Kuan-Cheng,Lai <alk03073135@gmail.com>
*
* @author Peter Lai <alk03073135@gmail.com>
* @license MIT
*/
namespace Web3\Methods\Shh;
use InvalidArgumentException;
use Web3\Methods\EthMethod;
use Web3\Validators\QuantityValidator;
use Web3\Formatters\QuantityFormatter;
class GetMessages extends EthMethod
{
/**
* validators
*
* @var array
*/
protected $validators = [
QuantityValidator::class
];
/**
* inputFormatters
*
* @var array
*/
protected $inputFormatters = [
QuantityFormatter::class
];
/**
* outputFormatters
*
* @var array
*/
protected $outputFormatters = [];
/**
* defaultValues
*
* @var array
*/
protected $defaultValues = [];
/**
* construct
*
* @param string $method
* @param array $arguments
* @return void
*/
// public function __construct($method='', $arguments=[])
// {
// parent::__construct($method, $arguments);
// }
}

View File

@ -38,7 +38,7 @@ class Shh
* @var array
*/
private $allowedMethods = [
'shh_version', 'shh_newIdentity', 'shh_hasIdentity', 'shh_post', 'shh_newFilter', 'shh_uninstallFilter', 'shh_getFilterChanges'
'shh_version', 'shh_newIdentity', 'shh_hasIdentity', 'shh_post', 'shh_newFilter', 'shh_uninstallFilter', 'shh_getFilterChanges', 'shh_getMessages'
// doesn't exist: 'shh_newGroup', 'shh_addToGroup'
];

View File

@ -367,6 +367,82 @@ class ShhApiTest extends TestCase
// });
// }
/**
* testGetMessages
* Comment because ganache-cli only implement shh_version.
*
* @return void
*/
// public function testGetMessages()
// {
// $shh = $this->shh;
// $fromIdentity = '';
// $toIdentity = '';
// $filter = '';
// // create fromIdentity and toIdentity to prevent unknown identity error
// $shh->newIdentity(function ($err, $identity) use (&$toIdentity) {
// if ($err !== null) {
// return $this->fail($err->getMessage());
// }
// $toIdentity = $identity;
// $this->assertEquals(mb_strlen($identity), 132);
// });
// $shh->newIdentity(function ($err, $identity) use (&$fromIdentity) {
// if ($err !== null) {
// return $this->fail($err->getMessage());
// }
// $fromIdentity = $identity;
// $this->assertEquals(mb_strlen($identity), 132);
// });
// $shh->newFilter([
// 'to' => $toIdentity,
// 'topics' => ["0x776869737065722d636861742d636c69656e74", "0x4d5a695276454c39425154466b61693532"],
// ], function ($err, $filterId) use (&$filter) {
// if ($err !== null) {
// return $this->fail($err->getMessage());
// }
// $filter = $filterId;
// $this->assertTrue(is_string($filterId));
// });
// $shh->getMessages($filter, function ($err, $messages) {
// if ($err !== null) {
// return $this->fail($err->getMessage());
// }
// $this->assertTrue(is_array($messages));
// });
// $shh->post([
// 'from' => $fromIdentity,
// 'to' => $toIdentity,
// 'topics' => ["0x776869737065722d636861742d636c69656e74", "0x4d5a695276454c39425154466b61693532"],
// 'payload' => "0x7b2274797065223a226d6",
// 'priority' => "0x64",
// 'ttl' => "0x64",
// ], function ($err, $isSent) {
// if ($err !== null) {
// return $this->fail($err->getMessage());
// }
// $this->assertTrue($isSent);
// });
// $shh->getMessages($filter, function ($err, $messages) use ($fromIdentity, $toIdentity) {
// if ($err !== null) {
// return $this->fail($err->getMessage());
// }
// $this->assertTrue(is_array($messages));
// $this->assertEquals($fromIdentity, $messages[0]->from);
// $this->assertEquals($toIdentity, $messages[0]->to);
// $this->assertEquals('0x07b2274797065223a226d6', $messages[0]->payload);
// });
// }
/**
* testWrongParam
* We transform data and throw invalid argument exception