コード例 #1
0
ファイル: Groupcash.php プロジェクト: groupcash/php
 /**
  * @param Binary $currencyKey
  * @param string $rules
  * @param null|RuleBook $previous
  * @return RuleBook
  */
 public function signRules(Binary $currencyKey, $rules, RuleBook $previous = null)
 {
     $address = $this->key->getAddress($currencyKey);
     $book = RuleBook::signed(new Signer($this->key, $currencyKey), $address, $rules, $previous);
     $allRules = [$book];
     if ($previous) {
         $allRules[] = $previous;
     }
     (new Verification($this->key))->verifyCurrencyRules($allRules)->mustBeOk();
     return $book;
 }
コード例 #2
0
ファイル: RuleBookTransformer.php プロジェクト: groupcash/php
 /**
  * @param RuleBook $object
  * @param Transcoder $transcoder
  * @return array
  */
 public function toArray($object, Transcoder $transcoder)
 {
     $array = ['by' => $transcoder->encode($object->getCurrencyAddress()->getData()), 'rules' => $object->getRules()];
     if ($object->getPreviousHash()) {
         $array['prev'] = $transcoder->encode($object->getPreviousHash()->getData());
     }
     $array['sig'] = $object->getSignature();
     return $array;
 }
コード例 #3
0
ファイル: RuleBook.php プロジェクト: groupcash/php
 /**
  * @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);
 }