From b39c22decdd471246d63e3e20beedb925aaa2710 Mon Sep 17 00:00:00 2001 From: sc0Vu Date: Mon, 29 Jan 2018 16:24:42 +0800 Subject: [PATCH] ssh_newFilter --- src/Methods/Shh/NewFilter.php | 61 +++++++++++++++++++++++++++++++++++ src/Shh.php | 2 +- test/unit/ShhApiTest.php | 52 +++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 src/Methods/Shh/NewFilter.php diff --git a/src/Methods/Shh/NewFilter.php b/src/Methods/Shh/NewFilter.php new file mode 100644 index 0000000..13b2b77 --- /dev/null +++ b/src/Methods/Shh/NewFilter.php @@ -0,0 +1,61 @@ + + * + * @author Peter Lai + * @license MIT + */ + +namespace Web3\Methods\Shh; + +use InvalidArgumentException; +use Web3\Methods\EthMethod; +use Web3\Validators\ShhFilterValidator; + +class NewFilter extends EthMethod +{ + /** + * validators + * + * @var array + */ + protected $validators = [ + ShhFilterValidator::class + ]; + + /** + * inputFormatters + * + * @var array + */ + protected $inputFormatters = []; + + /** + * 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); + // } +} \ No newline at end of file diff --git a/src/Shh.php b/src/Shh.php index dd73e64..15a7404 100644 --- a/src/Shh.php +++ b/src/Shh.php @@ -38,7 +38,7 @@ class Shh * @var array */ private $allowedMethods = [ - 'shh_version', 'shh_newIdentity', 'shh_hasIdentity', 'shh_post' + 'shh_version', 'shh_newIdentity', 'shh_hasIdentity', 'shh_post', 'shh_newFilter' // doesn't exist: 'shh_newGroup', 'shh_addToGroup' ]; diff --git a/test/unit/ShhApiTest.php b/test/unit/ShhApiTest.php index 1d1bec8..cf4f0cb 100644 --- a/test/unit/ShhApiTest.php +++ b/test/unit/ShhApiTest.php @@ -199,6 +199,58 @@ class ShhApiTest extends TestCase // }); // } + /** + * testNewFilter + * Comment because ganache-cli only implement shh_version. + * + * @return void + */ + // public function testNewFilter() + // { + // $shh = $this->shh; + // $toIdentity = ''; + + // // 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->newFilter([ + // 'to' => $toIdentity, + // 'topics' => ["0x776869737065722d636861742d636c69656e74", "0x4d5a695276454c39425154466b61693532"], + // ], function ($err, $filterId) { + // if ($err !== null) { + // return $this->fail($err->getMessage()); + // } + // $this->assertTrue(is_string($filterId)); + // }); + + // $shh->newFilter([ + // 'to' => $toIdentity, + // 'topics' => [null, "0x776869737065722d636861742d636c69656e74", "0x4d5a695276454c39425154466b61693532"], + // ], function ($err, $filterId) { + // if ($err !== null) { + // return $this->fail($err->getMessage()); + // } + // $this->assertTrue(is_string($filterId)); + // }); + + // $shh->newFilter([ + // 'to' => $toIdentity, + // 'topics' => ["0x776869737065722d636861742d636c69656e74", ["0x776869737065722d636861742d636c69656e74", "0x4d5a695276454c39425154466b61693532"]], + // ], function ($err, $filterId) { + // if ($err !== null) { + // return $this->fail($err->getMessage()); + // } + // $this->assertTrue(is_string($filterId)); + // }); + // } + /** * testWrongParam * We transform data and throw invalid argument exception