-
-
Notifications
You must be signed in to change notification settings - Fork 54
Open
Description
As first reported in #112, some Litecoin addresses cannot be decoded by this library. ea27eab implemented a partial fix, but the problem still exists for P2PKH Litecoin addresses starting with LTc1 or LTC1 as shown in the reproduction below.
import type { BTC_NETWORK } from "@scure/btc-signer/utils.js";
import { Address, p2pkh } from "@scure/btc-signer";
import { pubECDSA, randomPrivateKeyBytes } from "@scure/btc-signer/utils.js";
const litecoinNetwork: BTC_NETWORK = {
bech32: "ltc", // https://github.com/litecoin-project/litecoin/blob/v0.21.4/src/chainparams.cpp#L139
pubKeyHash: 48, // https://github.com/litecoin-project/litecoin/blob/v0.21.4/src/chainparams.cpp#L132
scriptHash: 50, // https://github.com/litecoin-project/litecoin/blob/v0.21.4/src/chainparams.cpp#L134
wif: 176, // https://github.com/litecoin-project/litecoin/blob/v0.21.4/src/chainparams.cpp#L135
};
for (let addressDecodeFailures = 0; addressDecodeFailures < 20; ) {
const privateKeyBytes = randomPrivateKeyBytes();
const publicKeyBytes = pubECDSA(privateKeyBytes);
const { address } = p2pkh(publicKeyBytes, litecoinNetwork);
try {
Address(litecoinNetwork).decode(address);
} catch {
console.log("Failed to decode address:", address);
addressDecodeFailures++;
}
}$ node find-litecoin-address-decode-failures.ts
Failed to decode address: LTC1zjVGsmn3xcSkog7Bo1uGyDxahZVQUb
Failed to decode address: LTC1HGy8TeF6vLBp76qjBtjZz9TG8zpJ6j
Failed to decode address: LTC1LcyW9nfPCyYocdyUgHZc2XghFkBpXY
Failed to decode address: LTC1Y3q5hCNd1k4upQeFiwyKPAr5YiCvfN
Failed to decode address: LTc1ryp642TP8mPRfPch3ZM9wGo9zRF2oJ
Failed to decode address: LTc11n2KGvXsmj4ugTUZo7d6ghx5GuxzTV
Failed to decode address: LTC1pF5s3D4yH2S2FkGswPv7ToXXuaAB2G
Failed to decode address: LTC1vMWAiEchr6m4NGQExi7B93TH8YFXdy
Failed to decode address: LTc1XEndWeVLAyU4KiUgaQf75NbSPFdxf8
Failed to decode address: LTC18PhC7QM3s39HUBevPHqtrMf2mNkzSj
Failed to decode address: LTc1SgNUc5h9ev4ToBu7JJAtYBuif6oLKt
Failed to decode address: LTC1RNPfPgoerwkyjkWds2vvRzFmfZMXoM
Failed to decode address: LTC1KEjDhuxuNF4JDyozu99BgqBGhLN9Rq
Failed to decode address: LTc16ULdEvnn6Z16jFUcsVjrseQ2ubVkvF
Failed to decode address: LTc1uK5VfZw9f9euVvszzXsVXrg67QKjM2
Failed to decode address: LTC1zsbzxgUZyLzpBfv9zoWWYvfR17xLAd
Failed to decode address: LTc1fM6fo9ju8yD51VaER9FrPknDvC94k3
Failed to decode address: LTC15qvqSNUQbgXrEjwko9tP12E6YfMwkn
Failed to decode address: LTc1589Ti1BerhYUzVW4dAs8AawDtnJmTD
Failed to decode address: LTc1toQUH7Q43M9XpFRHYhpobwFSw5sgds
Metadata
Metadata
Assignees
Labels
No labels