/** * @param NetworkInterface|null $network * @return string */ public function uri(NetworkInterface $network = null) { if ($this->rule === self::BIP0072) { $address = $this->address === null ? '' : $this->address->getAddress($network); } else { $address = $this->address->getAddress($network); } $url = 'bitcoin:' . $address; $params = []; if (null !== $this->amount) { $params['amount'] = $this->amount; } if (null !== $this->label) { $params['label'] = $this->label; } if (null !== $this->message) { $params['message'] = $this->message; } if (null !== $this->request) { $params['r'] = $this->request; } if (count($params) > 0) { $url .= '?' . http_build_query($params); } return $url; }
/** * @param AddressInterface $address * @param NetworkInterface $network * @return \React\Promise\Promise */ public function addressListUnspent(AddressInterface $address, NetworkInterface $network = null) { return $this->client->request('blockchain.address.listunspent', [$address->getAddress($network)])->then(function (Response $response) use($address) { return array_map(function (array $value) use($address) { return new Utxo($value['tx_hash'], $value['tx_pos'], new TransactionOutput($value['value'], ScriptFactory::scriptPubKey()->payToAddress($address))); }, $response->getResult()); }); }