@tatumio/bch 2.0.1-alpha.227 → 2.0.1-alpha.228
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +7 -8
- package/src/index.js +4 -1
- package/src/index.js.map +1 -1
- package/src/lib/bch.sdk.errors.js +9 -5
- package/src/lib/bch.sdk.errors.js.map +1 -1
- package/src/lib/bch.sdk.js +19 -15
- package/src/lib/bch.sdk.js.map +1 -1
- package/src/lib/bch.sdk.tx.js +33 -29
- package/src/lib/bch.sdk.tx.js.map +1 -1
- package/src/lib/bch.sdk.wallet.js +22 -17
- package/src/lib/bch.sdk.wallet.js.map +1 -1
- package/src/lib/utils/bch.address.js +19 -15
- package/src/lib/utils/bch.address.js.map +1 -1
package/package.json
CHANGED
@@ -1,19 +1,18 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tatumio/bch",
|
3
|
-
"version": "2.0.1-alpha.
|
3
|
+
"version": "2.0.1-alpha.228",
|
4
4
|
"license": "MIT",
|
5
5
|
"main": "./src/index.js",
|
6
6
|
"typings": "./src/index.d.ts",
|
7
7
|
"dependencies": {
|
8
|
-
"@tatumio/shared-testing": "2.0.1-alpha.
|
9
|
-
"@tatumio/shared-blockchain-btc-based": "2.0.1-alpha.
|
10
|
-
"@tatumio/shared-core": "2.0.1-alpha.
|
8
|
+
"@tatumio/shared-testing": "2.0.1-alpha.227",
|
9
|
+
"@tatumio/shared-blockchain-btc-based": "2.0.1-alpha.227",
|
10
|
+
"@tatumio/shared-core": "2.0.1-alpha.227",
|
11
11
|
"axios": "^0.24.0",
|
12
|
-
"@tatumio/api-client": "2.0.1-alpha.
|
13
|
-
"cross-blob": "^3.0.0",
|
12
|
+
"@tatumio/api-client": "2.0.1-alpha.227",
|
14
13
|
"form-data": "^4.0.0",
|
15
|
-
"@tatumio/shared-blockchain-abstract": "2.0.1-alpha.
|
16
|
-
"@tatumio/shared-abstract-sdk": "2.0.1-alpha.
|
14
|
+
"@tatumio/shared-blockchain-abstract": "2.0.1-alpha.227",
|
15
|
+
"@tatumio/shared-abstract-sdk": "2.0.1-alpha.227",
|
17
16
|
"bignumber.js": "^9.0.2",
|
18
17
|
"bip32": "^2.0.5",
|
19
18
|
"bip39": "^3.0.2",
|
package/src/index.js
CHANGED
package/src/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/blockchain/bch/src/index.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/blockchain/bch/src/index.ts"],"names":[],"mappings":";;;AAAA,6DAA6B"}
|
@@ -1,8 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.BchSdkError = exports.BCH_ERRORS_MAPPING = void 0;
|
4
|
+
const shared_abstract_sdk_1 = require("@tatumio/shared-abstract-sdk");
|
5
|
+
exports.BCH_ERRORS_MAPPING = {
|
6
|
+
'Transaction has absurd fees': shared_abstract_sdk_1.SdkErrorCode.BTC_FEE_IS_TOO_LARGE,
|
4
7
|
};
|
5
|
-
|
8
|
+
class BchSdkError extends shared_abstract_sdk_1.SdkError {
|
6
9
|
constructor(error) {
|
7
10
|
if (typeof error === 'string') {
|
8
11
|
super({
|
@@ -12,9 +15,10 @@ export class BchSdkError extends SdkError {
|
|
12
15
|
else {
|
13
16
|
super({
|
14
17
|
originalError: error,
|
15
|
-
errorSubstringMapping: BCH_ERRORS_MAPPING,
|
18
|
+
errorSubstringMapping: exports.BCH_ERRORS_MAPPING,
|
16
19
|
});
|
17
20
|
}
|
18
21
|
}
|
19
22
|
}
|
23
|
+
exports.BchSdkError = BchSdkError;
|
20
24
|
//# sourceMappingURL=bch.sdk.errors.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bch.sdk.errors.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.errors.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"bch.sdk.errors.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.errors.ts"],"names":[],"mappings":";;;AAAA,sEAAqE;AAExD,QAAA,kBAAkB,GAAG;IAChC,6BAA6B,EAAE,kCAAY,CAAC,oBAAoB;CACjE,CAAA;AAOD,MAAa,WAAY,SAAQ,8BAAQ;IACvC,YAAY,KAA8B;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,CAAC;gBACJ,IAAI,EAAE,KAAK;aACZ,CAAC,CAAA;SACH;aAAM;YACL,KAAK,CAAC;gBACJ,aAAa,EAAE,KAAK;gBACpB,qBAAqB,EAAE,0BAAkB;aAC1C,CAAC,CAAA;SACH;IACH,CAAC;CACF;AAbD,kCAaC"}
|
package/src/lib/bch.sdk.js
CHANGED
@@ -1,18 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
const
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.TatumBchSDK = void 0;
|
4
|
+
const shared_core_1 = require("@tatumio/shared-core");
|
5
|
+
const shared_blockchain_btc_based_1 = require("@tatumio/shared-blockchain-btc-based");
|
6
|
+
const api_client_1 = require("@tatumio/api-client");
|
7
|
+
const bch_sdk_tx_1 = require("./bch.sdk.tx");
|
8
|
+
const bch_sdk_wallet_1 = require("./bch.sdk.wallet");
|
9
|
+
const blockchain = shared_core_1.Blockchain.BCH;
|
10
|
+
const TatumBchSDK = (args) => {
|
11
|
+
return Object.assign(Object.assign({}, (0, shared_blockchain_btc_based_1.btcBasedSdk)(Object.assign(Object.assign({}, args), { blockchain }))), { wallet: (0, bch_sdk_wallet_1.bchWallet)(Object.assign(Object.assign({}, args), { blockchain })), transaction: (0, bch_sdk_tx_1.bchTransactions)(), blockchain: {
|
12
|
+
info: api_client_1.BlockchainBitcoinCashService.bchGetBlockChainInfo,
|
13
|
+
broadcast: api_client_1.BlockchainBitcoinCashService.bchBroadcast,
|
14
|
+
getBlockHash: api_client_1.BlockchainBitcoinCashService.bchGetBlockHash,
|
15
|
+
getBlock: api_client_1.BlockchainBitcoinCashService.bchGetBlock,
|
16
|
+
getTxForAccount: api_client_1.BlockchainBitcoinCashService.bchGetTxByAddress,
|
17
|
+
getTransaction: api_client_1.BlockchainBitcoinCashService.bchGetRawTransaction,
|
18
|
+
send: api_client_1.BlockchainBitcoinCashService.bchTransferBlockchain,
|
16
19
|
} });
|
17
20
|
};
|
21
|
+
exports.TatumBchSDK = TatumBchSDK;
|
18
22
|
//# sourceMappingURL=bch.sdk.js.map
|
package/src/lib/bch.sdk.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bch.sdk.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"bch.sdk.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AACjD,sFAAkE;AAClE,oDAAkE;AAElE,6CAA8C;AAC9C,qDAA4C;AAE5C,MAAM,UAAU,GAAG,wBAAU,CAAC,GAAG,CAAA;AAE1B,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,uCACK,IAAA,yCAAW,kCAAM,IAAI,KAAE,UAAU,IAAG,KACvC,MAAM,EAAE,IAAA,0BAAS,kCAAM,IAAI,KAAE,UAAU,IAAG,EAC1C,WAAW,EAAE,IAAA,4BAAe,GAAE,EAC9B,UAAU,EAAE;YACV,IAAI,EAAE,yCAA4B,CAAC,oBAAoB;YACvD,SAAS,EAAE,yCAA4B,CAAC,YAAY;YACpD,YAAY,EAAE,yCAA4B,CAAC,eAAe;YAC1D,QAAQ,EAAE,yCAA4B,CAAC,WAAW;YAClD,eAAe,EAAE,yCAA4B,CAAC,iBAAiB;YAC/D,cAAc,EAAE,yCAA4B,CAAC,oBAAoB;YACjE,IAAI,EAAE,yCAA4B,CAAC,qBAAqB;SACzD,IACF;AACH,CAAC,CAAA;AAfY,QAAA,WAAW,eAevB"}
|
package/src/lib/bch.sdk.tx.js
CHANGED
@@ -1,23 +1,26 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
const
|
10
|
-
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.bchTransactions = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const api_client_1 = require("@tatumio/api-client");
|
6
|
+
const bch_address_1 = require("./utils/bch.address");
|
7
|
+
const bch_sdk_errors_1 = require("./bch.sdk.errors");
|
8
|
+
const shared_abstract_sdk_1 = require("@tatumio/shared-abstract-sdk");
|
9
|
+
const coininfo_1 = (0, tslib_1.__importDefault)(require("coininfo"));
|
10
|
+
const bitcoincashjs2_lib_1 = require("@tatumio/bitcoincashjs2-lib");
|
11
|
+
const bignumber_js_1 = (0, tslib_1.__importDefault)(require("bignumber.js"));
|
12
|
+
const sendTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
13
|
+
return api_client_1.ApiServices.blockchain.bcash.bchBroadcast({
|
11
14
|
txData: yield prepareSignedTransaction(body, args),
|
12
15
|
});
|
13
16
|
});
|
14
17
|
// @TODO add support - by address
|
15
|
-
const prepareSignedTransaction = (body, args) => __awaiter(void 0, void 0, void 0, function* () {
|
18
|
+
const prepareSignedTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
16
19
|
try {
|
17
20
|
const network = args.testnet
|
18
|
-
?
|
19
|
-
:
|
20
|
-
const transactionBuilder = new TransactionBuilder(network);
|
21
|
+
? coininfo_1.default.bitcoincash.test.toBitcoinJS()
|
22
|
+
: coininfo_1.default.bitcoincash.main.toBitcoinJS();
|
23
|
+
const transactionBuilder = new bitcoincashjs2_lib_1.TransactionBuilder(network);
|
21
24
|
const privateKeysToSign = [];
|
22
25
|
const amountToSign = [];
|
23
26
|
const txs = yield getTransactions(body.fromUTXO.map((u) => u.txHash));
|
@@ -29,50 +32,51 @@ const prepareSignedTransaction = (body, args) => __awaiter(void 0, void 0, void
|
|
29
32
|
privateKeysToSign.push(item.privateKey);
|
30
33
|
const vout = txs[i].vout[item.index];
|
31
34
|
if (!vout)
|
32
|
-
throw new BchSdkError(SdkErrorCode.BTC_UTXO_NOT_FOUND);
|
33
|
-
amountToSign.push(amountUtils.toSatoshis(vout.value));
|
35
|
+
throw new bch_sdk_errors_1.BchSdkError(shared_abstract_sdk_1.SdkErrorCode.BTC_UTXO_NOT_FOUND);
|
36
|
+
amountToSign.push(shared_abstract_sdk_1.amountUtils.toSatoshis(vout.value));
|
34
37
|
const fromUTXO = body.fromUTXO;
|
35
38
|
if (fromUTXO && 'signatureId' in fromUTXO[0] && fromUTXO[0].signatureId) {
|
36
39
|
return JSON.stringify({ txData: JSON.stringify(txs[i]), privateKeysToSign });
|
37
40
|
}
|
38
41
|
}
|
39
42
|
body.to.forEach((item) => {
|
40
|
-
transactionBuilder.addOutput(bcashAddressHelper.getAddress(item.address), amountUtils.toSatoshis(item.value));
|
43
|
+
transactionBuilder.addOutput(bch_address_1.bcashAddressHelper.getAddress(item.address), shared_abstract_sdk_1.amountUtils.toSatoshis(item.value));
|
41
44
|
});
|
42
45
|
verifyAmounts(amountToSign, body);
|
43
46
|
for (let i = 0; i < privateKeysToSign.length; i++) {
|
44
|
-
const ecPair = ECPair.fromWIF(privateKeysToSign[i], network);
|
45
|
-
transactionBuilder.sign(i, ecPair, undefined, 0x01, amountToSign[i], undefined, ECSignature.SCHNORR);
|
47
|
+
const ecPair = bitcoincashjs2_lib_1.ECPair.fromWIF(privateKeysToSign[i], network);
|
48
|
+
transactionBuilder.sign(i, ecPair, undefined, 0x01, amountToSign[i], undefined, bitcoincashjs2_lib_1.ECSignature.SCHNORR);
|
46
49
|
}
|
47
50
|
return transactionBuilder.build().toHex();
|
48
51
|
}
|
49
52
|
catch (e) {
|
50
|
-
throw new BchSdkError(e);
|
53
|
+
throw new bch_sdk_errors_1.BchSdkError(e);
|
51
54
|
}
|
52
55
|
});
|
53
56
|
function verifyAmounts(amountToSign, body) {
|
54
57
|
const outputsSum = body.to
|
55
|
-
.map((to) => amountUtils.toSatoshis(to.value))
|
56
|
-
.reduce((e, acc) => e.plus(acc), new
|
58
|
+
.map((to) => shared_abstract_sdk_1.amountUtils.toSatoshis(to.value))
|
59
|
+
.reduce((e, acc) => e.plus(acc), new bignumber_js_1.default(0));
|
57
60
|
const inputsSum = amountToSign
|
58
|
-
.map((i) => new
|
59
|
-
.reduce((v, acc) => v.plus(acc), new
|
61
|
+
.map((i) => new bignumber_js_1.default(i))
|
62
|
+
.reduce((v, acc) => v.plus(acc), new bignumber_js_1.default(0));
|
60
63
|
if (outputsSum.eq(inputsSum)) {
|
61
|
-
throw new BchSdkError(SdkErrorCode.BTC_FEE_TOO_SMALL);
|
64
|
+
throw new bch_sdk_errors_1.BchSdkError(shared_abstract_sdk_1.SdkErrorCode.BTC_FEE_TOO_SMALL);
|
62
65
|
}
|
63
66
|
if (outputsSum.gt(inputsSum)) {
|
64
|
-
throw new BchSdkError(SdkErrorCode.BTC_NOT_ENOUGH_BALANCE);
|
67
|
+
throw new bch_sdk_errors_1.BchSdkError(shared_abstract_sdk_1.SdkErrorCode.BTC_NOT_ENOUGH_BALANCE);
|
65
68
|
}
|
66
69
|
}
|
67
|
-
const getTransactions = (txHash) => __awaiter(void 0, void 0, void 0, function* () {
|
70
|
+
const getTransactions = (txHash) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
68
71
|
const result = [];
|
69
72
|
for (const tx of txHash) {
|
70
|
-
result.push(ApiServices.blockchain.bcash.bchGetRawTransaction(tx));
|
73
|
+
result.push(api_client_1.ApiServices.blockchain.bcash.bchGetRawTransaction(tx));
|
71
74
|
}
|
72
75
|
return Promise.all(result);
|
73
76
|
});
|
74
|
-
|
77
|
+
const bchTransactions = () => ({
|
75
78
|
sendTransaction,
|
76
79
|
prepareSignedTransaction,
|
77
80
|
});
|
81
|
+
exports.bchTransactions = bchTransactions;
|
78
82
|
//# sourceMappingURL=bch.sdk.tx.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bch.sdk.tx.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.tx.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"bch.sdk.tx.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.tx.ts"],"names":[],"mappings":"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"}
|
@@ -1,23 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.bchWallet = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const shared_core_1 = require("@tatumio/shared-core");
|
6
|
+
const bitcoincashjs2_lib_1 = (0, tslib_1.__importDefault)(require("@tatumio/bitcoincashjs2-lib"));
|
7
|
+
const cashaddrjs_1 = (0, tslib_1.__importDefault)(require("cashaddrjs"));
|
8
|
+
const shared_blockchain_btc_based_1 = require("@tatumio/shared-blockchain-btc-based");
|
9
|
+
const bch_address_1 = require("./utils/bch.address");
|
10
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
11
|
+
const bchWallet = (args) => {
|
12
|
+
const btcBased = (0, shared_blockchain_btc_based_1.btcBasedWallet)(args);
|
9
13
|
return Object.assign(Object.assign({}, btcBased), { generateAddressFromXPub: (xpub, i, options) => {
|
10
|
-
const network = blockchainUtils.getNetworkConfig(args.blockchain, options);
|
11
|
-
const hdNode =
|
14
|
+
const network = shared_core_1.blockchainUtils.getNetworkConfig(args.blockchain, options);
|
15
|
+
const hdNode = bitcoincashjs2_lib_1.default.HDNode.fromBase58(xpub, network);
|
12
16
|
const legacy = hdNode.derivePath(String(i)).getAddress();
|
13
|
-
const decoded = bcashAddressHelper.decode(legacy);
|
14
|
-
return
|
17
|
+
const decoded = bch_address_1.bcashAddressHelper.decode(legacy);
|
18
|
+
return cashaddrjs_1.default.encode(decoded.prefix, decoded.type, decoded.hash);
|
15
19
|
}, generateAddressFromPrivateKey: (privateKey, options) => {
|
16
|
-
const network = blockchainUtils.getNetworkConfig(args.blockchain, options);
|
17
|
-
const keyPair = ECPair.fromWIF(privateKey, network);
|
18
|
-
const legacy = payments.p2pkh({ pubkey: keyPair.publicKey, network }).address;
|
19
|
-
const decoded = bcashAddressHelper.decode(legacy);
|
20
|
-
return
|
20
|
+
const network = shared_core_1.blockchainUtils.getNetworkConfig(args.blockchain, options);
|
21
|
+
const keyPair = bitcoinjs_lib_1.ECPair.fromWIF(privateKey, network);
|
22
|
+
const legacy = bitcoinjs_lib_1.payments.p2pkh({ pubkey: keyPair.publicKey, network }).address;
|
23
|
+
const decoded = bch_address_1.bcashAddressHelper.decode(legacy);
|
24
|
+
return cashaddrjs_1.default.encode(decoded.prefix, decoded.type, decoded.hash);
|
21
25
|
} });
|
22
26
|
};
|
27
|
+
exports.bchWallet = bchWallet;
|
23
28
|
//# sourceMappingURL=bch.sdk.wallet.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bch.sdk.wallet.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.wallet.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"bch.sdk.wallet.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.wallet.ts"],"names":[],"mappings":";;;;AAAA,sDAA0E;AAE1E,kGAA+C;AAC/C,yEAAiC;AACjC,sFAAqE;AACrE,qDAAwD;AAExD,iDAAgD;AAEzC,MAAM,SAAS,GAAG,CAAC,IAAwC,EAA0B,EAAE;IAC5F,MAAM,QAAQ,GAAG,IAAA,4CAAc,EAAC,IAAI,CAAC,CAAA;IAErC,uCACK,QAAQ,KACX,uBAAuB,EAAE,CAAC,IAAY,EAAE,CAAS,EAAE,OAA8B,EAAU,EAAE;YAC3F,MAAM,OAAO,GAAG,6BAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAC1E,MAAM,MAAM,GAAG,4BAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;YAExD,MAAM,OAAO,GAAG,gCAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAEjD,OAAO,oBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACpE,CAAC,EACD,6BAA6B,EAAE,CAAC,UAAkB,EAAE,OAA8B,EAAU,EAAE;YAC5F,MAAM,OAAO,GAAG,6BAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAC1E,MAAM,OAAO,GAAG,sBAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACnD,MAAM,MAAM,GAAG,wBAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAA;YAC7E,MAAM,OAAO,GAAG,gCAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAEjD,OAAO,oBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACpE,CAAC,IACF;AACH,CAAC,CAAA;AAvBY,QAAA,SAAS,aAuBrB"}
|
@@ -1,26 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.bcashAddressHelper = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
1
5
|
// @ts-ignore
|
2
|
-
|
6
|
+
const coininfo_1 = (0, tslib_1.__importDefault)(require("coininfo"));
|
3
7
|
// @ts-ignore
|
4
|
-
|
5
|
-
|
6
|
-
|
8
|
+
const bitcoincashjs2_lib_1 = (0, tslib_1.__importDefault)(require("@tatumio/bitcoincashjs2-lib"));
|
9
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
10
|
+
exports.bcashAddressHelper = {
|
7
11
|
getAddress: (address) => {
|
8
12
|
try {
|
9
|
-
return bcashAddressHelper.toLegacyAddress(address);
|
13
|
+
return exports.bcashAddressHelper.toLegacyAddress(address);
|
10
14
|
}
|
11
15
|
catch (e) {
|
12
16
|
return address;
|
13
17
|
}
|
14
18
|
},
|
15
19
|
toLegacyAddress: (address) => {
|
16
|
-
const { prefix, type, hash } = bcashAddressHelper.decode(address);
|
17
|
-
let bitcoincash =
|
20
|
+
const { prefix, type, hash } = exports.bcashAddressHelper.decode(address);
|
21
|
+
let bitcoincash = coininfo_1.default.bitcoincash.main;
|
18
22
|
switch (prefix) {
|
19
23
|
case 'bitcoincash':
|
20
|
-
bitcoincash =
|
24
|
+
bitcoincash = coininfo_1.default.bitcoincash.main;
|
21
25
|
break;
|
22
26
|
case 'bchtest':
|
23
|
-
bitcoincash =
|
27
|
+
bitcoincash = coininfo_1.default.bitcoincash.test;
|
24
28
|
break;
|
25
29
|
}
|
26
30
|
let version = bitcoincash.versions.public;
|
@@ -33,10 +37,10 @@ export const bcashAddressHelper = {
|
|
33
37
|
break;
|
34
38
|
}
|
35
39
|
const hashBuf = Buffer.from(hash);
|
36
|
-
return
|
40
|
+
return bitcoincashjs2_lib_1.default.address.toBase58Check(hashBuf, version);
|
37
41
|
},
|
38
42
|
decode: (address) => {
|
39
|
-
const { version, hash } =
|
43
|
+
const { version, hash } = bitcoincashjs2_lib_1.default.address.fromBase58Check(address);
|
40
44
|
let decoded = {
|
41
45
|
prefix: '',
|
42
46
|
type: '',
|
@@ -44,7 +48,7 @@ export const bcashAddressHelper = {
|
|
44
48
|
format: '',
|
45
49
|
};
|
46
50
|
switch (version) {
|
47
|
-
case networks.bitcoin.pubKeyHash:
|
51
|
+
case bitcoinjs_lib_1.networks.bitcoin.pubKeyHash:
|
48
52
|
decoded = {
|
49
53
|
prefix: 'bitcoincash',
|
50
54
|
type: 'P2PKH',
|
@@ -52,7 +56,7 @@ export const bcashAddressHelper = {
|
|
52
56
|
format: 'legacy',
|
53
57
|
};
|
54
58
|
break;
|
55
|
-
case networks.bitcoin.scriptHash:
|
59
|
+
case bitcoinjs_lib_1.networks.bitcoin.scriptHash:
|
56
60
|
decoded = {
|
57
61
|
prefix: 'bitcoincash',
|
58
62
|
type: 'P2SH',
|
@@ -60,7 +64,7 @@ export const bcashAddressHelper = {
|
|
60
64
|
format: 'legacy',
|
61
65
|
};
|
62
66
|
break;
|
63
|
-
case networks.testnet.pubKeyHash:
|
67
|
+
case bitcoinjs_lib_1.networks.testnet.pubKeyHash:
|
64
68
|
decoded = {
|
65
69
|
prefix: 'bchtest',
|
66
70
|
type: 'P2PKH',
|
@@ -68,7 +72,7 @@ export const bcashAddressHelper = {
|
|
68
72
|
format: 'legacy',
|
69
73
|
};
|
70
74
|
break;
|
71
|
-
case networks.testnet.scriptHash:
|
75
|
+
case bitcoinjs_lib_1.networks.testnet.scriptHash:
|
72
76
|
decoded = {
|
73
77
|
prefix: 'bchtest',
|
74
78
|
type: 'P2SH',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bch.address.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/bch/src/lib/utils/bch.address.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,
|
1
|
+
{"version":3,"file":"bch.address.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/bch/src/lib/utils/bch.address.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,qEAA+B;AAC/B,aAAa;AACb,kGAA+C;AAC/C,iDAAwC;AAgB3B,QAAA,kBAAkB,GAAG;IAChC,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE;QAC9B,IAAI;YACF,OAAO,0BAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;SACnD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,OAAO,CAAA;SACf;IACH,CAAC;IACD,eAAe,EAAE,CAAC,OAAe,EAAE,EAAE;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAY,0BAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1E,IAAI,WAAW,GAAG,kBAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAC3C,QAAQ,MAAM,EAAE;YACd,KAAK,aAAa;gBAChB,WAAW,GAAG,kBAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;gBACvC,MAAK;YACP,KAAK,SAAS;gBACZ,WAAW,GAAG,kBAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;gBACvC,MAAK;SACR;QAED,IAAI,OAAO,GAAW,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAA;QACjD,QAAQ,IAAI,EAAE;YACZ,KAAK,OAAO;gBACV,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAA;gBACrC,MAAK;YACP,KAAK,MAAM;gBACT,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAA;gBACzC,MAAK;SACR;QAED,MAAM,OAAO,GAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEzC,OAAO,4BAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,EAAE,CAAC,OAAe,EAAW,EAAE;QACnC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAU,4BAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAEvE,IAAI,OAAO,GAAY;YACrB,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,IAAI;YACJ,MAAM,EAAE,EAAE;SACX,CAAA;QACD,QAAQ,OAAO,EAAE;YACf,KAAK,wBAAQ,CAAC,OAAO,CAAC,UAAU;gBAC9B,OAAO,GAAG;oBACR,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE,OAAO;oBACb,IAAI;oBACJ,MAAM,EAAE,QAAQ;iBACjB,CAAA;gBACD,MAAK;YACP,KAAK,wBAAQ,CAAC,OAAO,CAAC,UAAU;gBAC9B,OAAO,GAAG;oBACR,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE,MAAM;oBACZ,IAAI;oBACJ,MAAM,EAAE,QAAQ;iBACjB,CAAA;gBACD,MAAK;YACP,KAAK,wBAAQ,CAAC,OAAO,CAAC,UAAU;gBAC9B,OAAO,GAAG;oBACR,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,OAAO;oBACb,IAAI;oBACJ,MAAM,EAAE,QAAQ;iBACjB,CAAA;gBACD,MAAK;YACP,KAAK,wBAAQ,CAAC,OAAO,CAAC,UAAU;gBAC9B,OAAO,GAAG;oBACR,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,MAAM;oBACZ,IAAI;oBACJ,MAAM,EAAE,QAAQ;iBACjB,CAAA;gBACD,MAAK;SACR;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
|