/**
  * @param TransactionOutputInterface $txOutput
  * @return OutputBuf
  */
 private function outputToBuf(TransactionOutputInterface $txOutput)
 {
     $output = new OutputBuf();
     $output->setScript($txOutput->getScript()->getBuffer()->getBinary());
     $output->setAmount($txOutput->getValue());
     return $output;
 }
Beispiel #2
0
 /**
  * @param PrivateKeyInterface $key
  * @param ScriptInterface $scriptCode
  * @param int $sigVersion
  * @return TransactionSignature
  */
 public function calculateSignature(PrivateKeyInterface $key, ScriptInterface $scriptCode, $sigVersion)
 {
     if ($sigVersion == 1) {
         $hasher = new V1Hasher($this->tx, $this->txOut->getValue());
     } else {
         $hasher = new Hasher($this->tx);
     }
     $hash = $hasher->calculate($scriptCode, $this->nInput, $this->sigHashType);
     return new TransactionSignature($this->ecAdapter, $this->ecAdapter->sign($hash, $key, new Rfc6979($this->ecAdapter, $key, $hash, 'sha256')), $this->sigHashType);
 }
 /**
  * @param TransactionOutputInterface $output
  * @return BufferInterface
  */
 public function serialize(TransactionOutputInterface $output)
 {
     return $this->getTemplate()->write([$output->getValue(), $output->getScript()->getBuffer()]);
 }
Beispiel #4
0
 /**
  * @param ConsensusInterface $consensus
  * @param int $nInput
  * @param TransactionOutputInterface $output
  * @return bool
  */
 public function checkSignature(ConsensusInterface $consensus, $nInput, TransactionOutputInterface $output)
 {
     $witnesses = $this->transaction->getWitnesses();
     $witness = isset($witnesses[$nInput]) ? $witnesses[$nInput] : null;
     return $consensus->verify($this->transaction, $output->getScript(), $nInput, $output->getValue(), $witness);
 }
Beispiel #5
0
 /**
  * @param TransactionOutputInterface $output
  * @return array
  */
 public function convertTxoutToArray(TransactionOutputInterface $output)
 {
     return ['value' => $output->getValue(), 'scriptPubKey' => $output->getScript()->getHex()];
 }
Beispiel #6
0
 /**
  * @param array $array
  * @return $this
  */
 private function replace(array $array)
 {
     $this->output = new TransactionOutput(array_key_exists('value', $array) ? $array['value'] : $this->output->getValue(), array_key_exists('script', $array) ? $array['script'] : $this->output->getScript());
     return $this;
 }