<?php namespace BitWasp\Bitcoin\Script; use BitWasp\Bitcoin\Script\Parser\Parser; use BitWasp\Bitcoin\SerializableInterface; use BitWasp\Buffertools\BufferInterface; interface ScriptInterface extends SerializableInterface { /** * @return BufferInterface */ public function getScriptHash(); /** * @return BufferInterface */ public function getWitnessScriptHash(); /** * @return Parser */ public function getScriptParser(); /** * @return Opcodes */ public function getOpcodes(); /** * @return bool */ public function isPushOnly(); /** * @param WitnessProgram|null $witness * @return bool */ public function isWitness(& $witness); /** * @param bool $accurate * @return int */ public function countSigOps($accurate = true); /** * @param ScriptInterface $scriptSig * @return int */ public function countP2shSigOps(ScriptInterface $scriptSig); /** * @param ScriptInterface $scriptSig * @param ScriptWitnessInterface $witness * @param int $flags * @return int */ public function countWitnessSigOps(ScriptInterface $scriptSig, ScriptWitnessInterface $witness, $flags); /** * @param ScriptInterface $script * @return bool */ public function equals(ScriptInterface $script); }