@abcpros/bitcore-wallet-service
Version:
A service for Mutisig HD Bitcoin Wallets
43 lines (38 loc) • 1.16 kB
text/typescript
import { BitcoreLib, BitcoreLibCash } from '@abcpros/crypto-wallet-core';
import _ from 'lodash';
import { IChain } from '..';
import { BtcChain } from '../btc';
const config = require('../../../config');
const Errors = require('../../errors/errordefinitions');
export class BchChain extends BtcChain implements IChain {
constructor() {
super(BitcoreLibCash);
this.sizeEstimationMargin = config.bch?.sizeEstimationMargin ?? 0.01;
this.inputSizeEstimationMargin = config.bch?.inputSizeEstimationMargin ?? 2;
}
getSizeSafetyMargin(opts: any): number {
return 0;
}
getInputSizeSafetyMargin(opts: any): number {
return 0;
}
validateAddress(wallet, inaddr, opts) {
const A = BitcoreLibCash.Address;
let addr: {
network?: string;
toString?: (cashAddr: boolean) => string;
} = {};
try {
addr = new A(inaddr);
} catch (ex) {
throw Errors.INVALID_ADDRESS;
}
if (addr.network.toString() != wallet.network) {
throw Errors.INCORRECT_ADDRESS_NETWORK;
}
if (!opts.noCashAddr) {
if (addr.toString(true) != inaddr) throw Errors.ONLY_CASHADDR;
}
return;
}
}