示例#1
0
 /**
  * @param ScriptInterface $redeemScript
  */
 public function __construct(ScriptInterface $redeemScript)
 {
     $classifier = ScriptFactory::scriptPubKey()->classify($redeemScript);
     if ($classifier->isPayToScriptHash()) {
         throw new \InvalidArgumentException('Provided script is a pay-to-script-hash output script');
     }
     switch ($classifier->classify()) {
         case OutputClassifier::MULTISIG:
             $handler = new Multisig($redeemScript);
             break;
         case OutputClassifier::PAYTOPUBKEY:
             $handler = new PayToPubkey($redeemScript);
             break;
         case OutputClassifier::PAYTOPUBKEYHASH:
             $handler = new PayToPubkeyHash($redeemScript);
             break;
         default:
             throw new \InvalidArgumentException('redeemScript not yet supported');
     }
     $this->redeemScript = $redeemScript;
     $this->outputScript = ScriptFactory::scriptPubKey()->payToScriptHash($redeemScript);
     $this->p2shAddress = AddressFactory::fromScript($redeemScript);
     $this->handler = $handler;
 }
示例#2
0
 /**
  * @return \BitWasp\Bitcoin\Address\ScriptHashAddress
  */
 public function getAddress()
 {
     return AddressFactory::fromScript($this);
 }
示例#3
0
 /**
  * @return \BitWasp\Bitcoin\Address\ScriptHashAddress
  */
 public function getAddress()
 {
     return AddressFactory::fromScript($this->getRedeemScript());
 }
示例#4
0
 /**
  * @return \BitWasp\Bitcoin\Address\ScriptHashAddress
  */
 public function getAddress()
 {
     $address = AddressFactory::fromScript($this);
     return $address;
 }