Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
metropolite
/
wp-content
/
plugins
/
mycryptocheckout
/
vendor
/
bitwasp
/
bitcoin
/
src
/
Key
/
KeyToScript
/
Decorator
:
P2shP2wshScriptDecorator.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace BitWasp\Bitcoin\Key\KeyToScript\Decorator; use BitWasp\Bitcoin\Crypto\EcAdapter\Key\KeyInterface; use BitWasp\Bitcoin\Key\KeyToScript\ScriptAndSignData; use BitWasp\Bitcoin\Script\P2shScript; use BitWasp\Bitcoin\Script\ScriptType; use BitWasp\Bitcoin\Script\WitnessScript; use BitWasp\Bitcoin\Transaction\Factory\SignData; class P2shP2wshScriptDecorator extends ScriptHashDecorator { /** * @var string[] */ protected $allowedScriptTypes = [ ScriptType::P2PKH, ScriptType::P2PK, ]; /** * @var string */ protected $decorateType = "scripthash|witness_v0_scripthash"; /** * @param KeyInterface $key * @return ScriptAndSignData * @throws \BitWasp\Bitcoin\Exceptions\P2shScriptException * @throws \BitWasp\Bitcoin\Exceptions\WitnessScriptException */ public function convertKey(KeyInterface $key) { $witnessScript = new WitnessScript($this->scriptDataFactory->convertKey($key)->getScriptPubKey()); $redeemScript = new P2shScript($witnessScript); return new ScriptAndSignData( $redeemScript->getOutputScript(), (new SignData()) ->p2sh($redeemScript) ->p2wsh($witnessScript) ); } }