diff --git a/src/Personal.php b/src/Personal.php index 1b80148..7683b00 100644 --- a/src/Personal.php +++ b/src/Personal.php @@ -15,7 +15,9 @@ use Web3\Providers\Provider; use Web3\Providers\HttpProvider; use Web3\RequestManagers\RequestManager; use Web3\RequestManagers\HttpRequestManager; +use Web3\Validators\AddressValidator; use Web3\Validators\StringValidator; +use Web3\Validators\QuantityValidator; class Personal { @@ -40,6 +42,18 @@ class Personal ] ] ], + 'personal_unlockAccount' => [ + 'params' => [ + [ + 'validators' => AddressValidator::class + ], [ + 'validators' => StringValidator::class + ], [ + 'default' => 300, + 'validators' => QuantityValidator::class + ] + ] + ], ]; /** diff --git a/test/unit/PersonalApiTest.php b/test/unit/PersonalApiTest.php index 768cfb1..11b53c5 100644 --- a/test/unit/PersonalApiTest.php +++ b/test/unit/PersonalApiTest.php @@ -70,6 +70,28 @@ class PersonalApiTest extends TestCase }); } + /** + * testUnlockAccount + * + * @return void + */ + public function testUnlockAccount() + { + $personal = $this->personal; + + $personal->unlockAccount('0x407d73d8a49eeb85d32cf465507dd71d507100c1', '123456', function ($err, $account) { + if ($err !== null) { + // infura banned us to use unlock account + return $this->assertTrue($err->getCode() === 405); + } + if (isset($account->result)) { + $this->assertTrue(is_array($account->result)); + } else { + $this->fail($account->error->message); + } + }); + } + /** * testUnallowedMethod *