libnexa-ts
Version:
A pure and powerful Nexa SDK library.
86 lines (79 loc) • 2.08 kB
text/typescript
import type { NetworkParams } from "../../common/interfaces";
import BufferUtils from "../../utils/buffer.utils";
export class Network {
public name: string;
public alias: string;
public prefix: string;
public pubkeyhash: number;
public privatekey: number;
public scripthash: number;
public xpubkey: number;
public xprivkey: number;
public networkMagic: Uint8Array;
public port: number;
public dnsSeeds: string[];
constructor(params: NetworkParams) {
this.name = params.name;
this.alias = params.alias;
this.prefix = params.prefix;
this.pubkeyhash = params.pubkeyhash;
this.privatekey = params.privatekey;
this.scripthash = params.scripthash;
this.xpubkey = params.xpubkey;
this.xprivkey = params.xprivkey;
this.networkMagic = BufferUtils.integerAsBuffer(params.networkMagic);
this.port = params.port;
this.dnsSeeds = params.dnsSeeds;
}
public toString(): string {
return this.name;
}
}
export const liveNetwork = new Network({
name: 'mainnet',
alias: 'livenet',
prefix: 'nexa',
pubkeyhash: 0x19,
privatekey: 0x23,
scripthash: 0x44,
xpubkey: 0x42696720,
xprivkey: 0x426c6b73,
networkMagic: 0x72271221,
port: 7228,
dnsSeeds: [ // from https://gitlab.com/nexa/nexa/-/blob/dev/src/chainparams.cpp#L592
'seed.nextchain.cash',
'seeder.nexa.org',
'nexa-seeder.bitcoinunlimited.info'
]
});
export const testNetwork = new Network({
name: 'testnet',
alias: 'testnet',
prefix: 'nexatest',
pubkeyhash: 0x6f,
privatekey: 0xef,
scripthash: 0xc4,
xpubkey: 0x043587cf,
xprivkey: 0x04358394,
networkMagic: 0x72271222,
port: 7230,
dnsSeeds: [
'nexa-testnet-seeder.bitcoinunlimited.info',
'testnetseeder.nexa.org'
]
});
export const regtestNetwork = new Network({
name: 'regtest',
alias: 'regtest',
prefix: 'nexareg',
pubkeyhash: 0x6f,
privatekey: 0xef,
scripthash: 0xc4,
xpubkey: 0x043587cf,
xprivkey: 0x04358394,
networkMagic: 0xeae5efea,
port: 18444,
dnsSeeds: [
// Regtest mode doesn't have any DNS seeds.
]
});