/** * @param PublicKeyInterface $publicKey * @return bool */ public function checkInvolvesKey(PublicKeyInterface $publicKey) { $binary = $publicKey->getBinary(); foreach ($this->keys as $key) { if ($key->getBinary() === $binary) { return true; } } return false; }
/** * @param \BitWasp\Bitcoin\Signature\TransactionSignatureInterface $signature * @param PublicKeyInterface $publicKey * @return ScriptInterface */ public function payToPubKeyHash(TransactionSignatureInterface $signature, PublicKeyInterface $publicKey) { return ScriptFactory::create()->push($signature->getBuffer())->push($publicKey->getBuffer())->getScript(); }
/** * @param PublicKeyInterface $publicKey * @return bool */ public function checkInvolvesKey(PublicKeyInterface $publicKey) { return $publicKey->getPubKeyHash()->getBinary() === $this->hash->getBinary(); }
/** * Create a P2PKH output script * * @param PublicKeyInterface $public_key * @return ScriptInterface */ public function payToPubKeyHash(PublicKeyInterface $public_key) { return ScriptFactory::create()->op('OP_DUP')->op('OP_HASH160')->push($public_key->getPubKeyHash())->op('OP_EQUALVERIFY')->op('OP_CHECKSIG')->getScript(); }
/** * @param int|string $sequence * @param bool $change * @return PrivateKeyInterface|PublicKeyInterface */ public function deriveChild($sequence, $change = false) { return $this->publicKey->tweakAdd($this->getSequenceOffset($sequence, $change)); }