@trezor/utxo-lib
Version:
Client-side Bitcoin-like JavaScript library
250 lines • 6.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.doge = exports.decredSim = exports.decredTest = exports.decred = exports.komodo = exports.peercoinTest = exports.peercoin = exports.zcashTest = exports.zcash = exports.dashTest = exports.dash = exports.litecoinTest = exports.litecoin = exports.bitcoingold = exports.bitcoincashTest = exports.bitcoincash = exports.testnet = exports.regtest = exports.bitcoin = void 0;
exports.isNetworkType = isNetworkType;
const typeforce_1 = require("./types/typeforce");
exports.bitcoin = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'bc',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x00,
scriptHash: 0x05,
wif: 0x80,
};
exports.regtest = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'bcrt',
bip32: {
public: 0x043587cf,
private: 0x04358394,
},
pubKeyHash: 0x6f,
scriptHash: 0xc4,
wif: 0xef,
};
exports.testnet = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'tb',
bip32: {
public: 0x043587cf,
private: 0x04358394,
},
pubKeyHash: 0x6f,
scriptHash: 0xc4,
wif: 0xef,
};
exports.bitcoincash = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: '',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x00,
scriptHash: 0x05,
wif: 0x80,
forkId: 0x00,
};
exports.bitcoincashTest = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: '',
bip32: {
public: 0x043587cf,
private: 0x04358394,
},
pubKeyHash: 0x6f,
scriptHash: 0xc4,
wif: 0xef,
forkId: 0x00,
};
exports.bitcoingold = {
messagePrefix: '\x18Bitcoin Gold Signed Message:\n',
bech32: 'btg',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x26,
scriptHash: 0x17,
wif: 0x80,
forkId: 0x4f,
};
exports.litecoin = {
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'ltc',
bip32: {
public: 0x019da462,
private: 0x019d9cfe,
},
pubKeyHash: 0x30,
scriptHash: 0x32,
wif: 0xb0,
};
exports.litecoinTest = {
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'tltc',
bip32: {
public: 0x043587cf,
private: 0x04358394,
},
pubKeyHash: 0x6f,
scriptHash: 0x3a,
wif: 0xb0,
};
exports.dash = {
messagePrefix: '\x19DarkCoin Signed Message:\n',
bech32: '',
bip32: {
public: 0x02fe52cc,
private: 0x2fe52f8,
},
pubKeyHash: 0x4c,
scriptHash: 0x10,
wif: 0xcc,
};
exports.dashTest = {
messagePrefix: '\x19DarkCoin Signed Message:\n',
bech32: '',
bip32: {
public: 0x043587cf,
private: 0x04358394,
},
pubKeyHash: 0x8c,
scriptHash: 0x13,
wif: 0xef,
};
exports.zcash = {
messagePrefix: '\x18ZCash Signed Message:\n',
bech32: '',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x1cb8,
scriptHash: 0x1cbd,
wif: 0x80,
};
exports.zcashTest = {
messagePrefix: '\x18ZCash Signed Message:\n',
bech32: '',
bip32: {
public: 0x043587cf,
private: 0x04358394,
},
pubKeyHash: 0x1d25,
scriptHash: 0x1cba,
wif: 0xef,
};
exports.peercoin = {
messagePrefix: '\x18Peercoin Signed Message:\n',
bech32: 'pc',
bip32: {
public: 0x488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x37,
scriptHash: 0x75,
wif: 0,
};
exports.peercoinTest = {
messagePrefix: '\x18Peercoin Signed Message:\n',
bech32: 'tpc',
bip32: {
public: 0x43587cf,
private: 0x04358394,
},
pubKeyHash: 0x6f,
scriptHash: 0xc4,
wif: 0,
};
exports.komodo = {
messagePrefix: '\x18Komodo Signed Message:\n',
bech32: '',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x3c,
scriptHash: 0x55,
wif: 0xbc,
};
exports.decred = {
messagePrefix: '\x17Decred Signed Message:\n',
bech32: '',
bip32: {
public: 0x02fda926,
private: 0x02fda4e8,
},
pubKeyHash: 0x073f,
scriptHash: 0x071a,
wif: 0x22de,
};
exports.decredTest = {
messagePrefix: '\x17Decred Signed Message:\n',
bech32: '',
bip32: {
public: 0x043587d1,
private: 0x04358397,
},
pubKeyHash: 0x0f21,
scriptHash: 0x0efc,
wif: 0x230e,
};
exports.decredSim = {
messagePrefix: '\x17Decred Signed Message:\n',
bech32: '',
bip32: {
public: 0x0420bd3d,
private: 0x0420b903,
},
pubKeyHash: 0x0e91,
scriptHash: 0x0e6c,
wif: 0x2307,
};
exports.doge = {
messagePrefix: '\x19Dogecoin Signed Message:\n',
bech32: '',
bip32: {
public: 0x02facafd,
private: 0x02fac398,
},
pubKeyHash: 0x1e,
scriptHash: 0x16,
wif: 0x9e,
};
const NETWORK_TYPES = {
bitcoinCash: [exports.bitcoincash, exports.bitcoincashTest],
dash: [exports.dash, exports.dashTest],
decred: [exports.decred, exports.decredTest, exports.decredSim],
peercoin: [exports.peercoin, exports.peercoinTest],
zcash: [exports.zcash, exports.zcashTest, exports.komodo],
litecoin: [exports.litecoin, exports.litecoinTest],
doge: [exports.doge],
};
function isNetworkType(type, network) {
if (typeof type !== 'string' || !network || !NETWORK_TYPES[type])
return false;
try {
(0, typeforce_1.typeforce)({
bip32: {
public: typeforce_1.typeforce.UInt32,
private: typeforce_1.typeforce.UInt32,
},
pubKeyHash: typeforce_1.typeforce.anyOf(typeforce_1.typeforce.UInt8, typeforce_1.typeforce.UInt16),
scriptHash: typeforce_1.typeforce.anyOf(typeforce_1.typeforce.UInt8, typeforce_1.typeforce.UInt16),
}, network);
}
catch {
return false;
}
return !!NETWORK_TYPES[type].find(n => n.bip32.public === network.bip32.public &&
n.bip32.private === network.bip32.private &&
((!n.bech32 && !network.bech32) || n.bech32 === network.bech32) &&
((!n.forkId && !network.forkId) || n.forkId === network.forkId) &&
n.pubKeyHash === network.pubKeyHash &&
n.scriptHash === network.scriptHash);
}
//# sourceMappingURL=networks.js.map