Berechnen Sie Gebühren mit dem Blocktrail/btc.com SDK

Ich möchte die Gebühren einer Blocktrail-Transaktion mit dem Blocktrail-SDK berechnen, bevor ich die Transaktion durchführe, damit der Empfänger Gebühren zahlen kann.

Folgendes habe ich versucht:

$FEES = $wallet->coinSelection(\Blocktrail\SDK\Wallet::normalizeOutputsStruct(['66f4dec6ab29cd056ce1814c6fdfee05e1524b36' =>'100000']),false,false,\Blocktrail\SDK\Wallet::FEE_STRATEGY_LOW_PRIORITY;
echo "$FEES";
$fee = $FEES['fee'];
echo "$fee";

Aber das funktioniert nicht, da steht:Fatal error: Uncaught Blocktrail\SDK\Exceptions\BlocktrailSDKException: Address not recognized

Wie kann ich diesen Fehler beheben?

Antworten (3)

Ich bin mir nicht sicher, dass ich ihr API-System nicht verwendet habe, aber es könnte am Format Ihrer Bitcoin-Adresse liegen, die Sie übergeben.

66f4dec6ab29cd056ce1814c6fdfee05e1524b36wird mit diesem Dienst als gültige Bitcoin-Adresse gelesen

Wenn ich diese Adresse jedoch in einem Block-Explorer suche, erhalte ich die folgende Adresse, die mit der häufigeren 1 beginnt1APPGSyMsPaBUAHtjEm6tPqV9U54JRzmd6

66f ist kein Anfang einer Bitcoin-Adresse, die ich erkenne, obwohl es viele gibt, aber keine Erwähnung im Wiki

Daher würde ich vorschlagen, Ihren Code mit dem gebräuchlicheren Bitcoin-Adressformat auszuprobieren

$FEES = $wallet->coinSelection(\Blocktrail\SDK\Wallet::normalizeOutputsStruct(['1APPGSyMsPaBUAHtjEm6tPqV9U54JRzmd6' =>'100000']),false,false,\Blocktrail\SDK\Wallet::FEE_STRATEGY_LOW_PRIORITY['fee'];
echo "$FEES";

Und sehen, ob das funktioniert

Danke für die Antwort, aber es funktioniert immer noch nicht, derselbe Fehler
hmm Eine Sache, die ich als nächstes überprüfen möchte, wäre, dass der coinSelectionTeil Ihres Codes definitiv Bitcoin auswählt?
Ja, es ist Bitcoin, die einzige Sache ist, dass ich das Bitcoin-Testnet verwende, das ich zuvor initialisiert habe, $client = new BlocktrailSDK("api", "api", "BTC", true);
66f4dec6ab29cd056ce1814c6fdfee05e1524b36 ist eine Bitcoin-Testnetzadresse
Möglicherweise müssen Sie das Testnetz auch bei der Gebührentransaktion angeben. Welche false,falseTeile werden nach der Adresse übermittelt? obwohl ich erwartet hätte, dass das mit der Bitcoin-Adresse funktioniert hat, die mit der 1 beginnt. Also nicht sicher, haben Sie versucht, direkt mit ihrem Support zu sprechen?

66f4dec6ab29cd056ce1814c6fdfee05e1524b36ist keine gültige Bitcoin-Adresse.

Gültige Bitcoin-Adressen im Mainnet beginnen mit 1(P2PKH), 3(P2SH) oder bc1(segwit).

Auf Testnet beginnen die Adressen mit moder n(P2PKH), 2(P2SH) oder tb1(segwit).

nach init-Wallet

$wallet = $client->initWallet("WALLET", "PASS");

Sie können eine Gebühr erzwingen. Ich weiß nicht, ob dir das nützt.

$fee = 0.0001;

$wallet->pay(array("address" => BlocktrailSDK::toSatoshi(0.00200000)), null, false, false, Wallet::FEE_STRATEGY_FORCE_FEE, BlocktrailSDK::toSatoshi($fee));