/** * @param Signer $currency * @param Binary $address * @param string $rules * @param null|RuleBook $previous * @return RuleBook */ public static function signed(Signer $currency, Binary $address, $rules, RuleBook $previous = null) { $previousHash = $previous ? $previous->hash() : null; return new RuleBook($address, $rules, $currency->sign([$address, $rules, $previousHash]), $previousHash); }