@tatumio/bch 2.0.1-alpha.273 → 2.0.1-alpha.276
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -8
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/bch.sdk.d.ts +5 -5
- package/src/lib/bch.sdk.tx.js +12 -9
- package/src/lib/bch.sdk.tx.js.map +1 -1
- package/src/lib/bch.sdk.wallet.d.ts +5 -5
- package/src/lib/bch.sdk.wallet.js +2 -20
- package/src/lib/bch.sdk.wallet.js.map +1 -1
- package/src/lib/bch.wallet.utils.d.ts +2 -0
- package/src/lib/bch.wallet.utils.js +29 -0
- package/src/lib/bch.wallet.utils.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tatumio/bch",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.276",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@tatumio/shared-testing-common": "2.0.1-alpha.
|
|
9
|
-
"@tatumio/api-client": "2.0.1-alpha.
|
|
8
|
+
"@tatumio/shared-testing-common": "2.0.1-alpha.276",
|
|
9
|
+
"@tatumio/api-client": "2.0.1-alpha.276",
|
|
10
10
|
"axios": "^0.26.0",
|
|
11
11
|
"form-data": "^4.0.0",
|
|
12
|
-
"@tatumio/shared-testing-btc-based": "2.0.1-alpha.
|
|
13
|
-
"@tatumio/shared-blockchain-btc-based": "2.0.1-alpha.
|
|
14
|
-
"@tatumio/shared-abstract-sdk": "2.0.1-alpha.
|
|
12
|
+
"@tatumio/shared-testing-btc-based": "2.0.1-alpha.276",
|
|
13
|
+
"@tatumio/shared-blockchain-btc-based": "2.0.1-alpha.276",
|
|
14
|
+
"@tatumio/shared-abstract-sdk": "2.0.1-alpha.276",
|
|
15
15
|
"bignumber.js": "^9.0.2",
|
|
16
|
-
"@tatumio/shared-core": "2.0.1-alpha.
|
|
17
|
-
"@tatumio/shared-blockchain-abstract": "2.0.1-alpha.
|
|
16
|
+
"@tatumio/shared-core": "2.0.1-alpha.276",
|
|
17
|
+
"@tatumio/shared-blockchain-abstract": "2.0.1-alpha.276",
|
|
18
18
|
"bip32": "^2.0.5",
|
|
19
19
|
"bip39": "^3.0.2",
|
|
20
20
|
"bitcoinjs-lib": "^5.2.0",
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -6,4 +6,5 @@ const tslib_1 = require("tslib");
|
|
|
6
6
|
(0, tslib_1.__exportStar)(require("./lib/bch.sdk.wallet"), exports);
|
|
7
7
|
var bch_sdk_tx_1 = require("./lib/bch.sdk.tx");
|
|
8
8
|
Object.defineProperty(exports, "bchTransactions", { enumerable: true, get: function () { return bch_sdk_tx_1.bchTransactions; } });
|
|
9
|
+
(0, tslib_1.__exportStar)(require("./lib/bch.wallet.utils"), exports);
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
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,6DAA6B;AAC7B,oEAAoC;AACpC,+CAAuE;AAAzC,6GAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/blockchain/bch/src/index.ts"],"names":[],"mappings":";;;;AAAA,6DAA6B;AAC7B,oEAAoC;AACpC,+CAAuE;AAAzC,6GAAA,eAAe,OAAA;AAC7C,sEAAsC"}
|
package/src/lib/bch.sdk.d.ts
CHANGED
|
@@ -2,15 +2,15 @@ import { BitcoinCashService } from '@tatumio/api-client';
|
|
|
2
2
|
import { SDKArguments } from '@tatumio/shared-abstract-sdk';
|
|
3
3
|
export declare const TatumBchSDK: (args: SDKArguments) => {
|
|
4
4
|
wallet: {
|
|
5
|
-
generateAddressFromXPub
|
|
5
|
+
generateAddressFromXPub(xpub: string, i: number, options?: {
|
|
6
6
|
testnet: boolean;
|
|
7
|
-
})
|
|
8
|
-
generateAddressFromPrivateKey: (privateKey: string, options?: {
|
|
9
|
-
testnet: boolean;
|
|
10
|
-
}) => string;
|
|
7
|
+
}): string;
|
|
11
8
|
generatePrivateKeyFromMnemonic(mnemonic: string, i: number, options?: {
|
|
12
9
|
testnet: boolean;
|
|
13
10
|
}): Promise<string>;
|
|
11
|
+
generateAddressFromPrivateKey(privateKey: string, options?: {
|
|
12
|
+
testnet: boolean;
|
|
13
|
+
}): string;
|
|
14
14
|
generateWallet(mnemonic?: string, options?: {
|
|
15
15
|
testnet: boolean;
|
|
16
16
|
}): Promise<import("@tatumio/api-client").TronWallet>;
|
package/src/lib/bch.sdk.tx.js
CHANGED
|
@@ -6,8 +6,10 @@ const api_client_1 = require("@tatumio/api-client");
|
|
|
6
6
|
const bch_address_1 = require("./utils/bch.address");
|
|
7
7
|
const bch_sdk_errors_1 = require("./bch.sdk.errors");
|
|
8
8
|
const shared_abstract_sdk_1 = require("@tatumio/shared-abstract-sdk");
|
|
9
|
-
|
|
10
|
-
const
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
const coininfo = (0, tslib_1.__importStar)(require("coininfo"));
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
const BitcoinCashJS = (0, tslib_1.__importStar)(require("@tatumio/bitcoincashjs2-lib"));
|
|
11
13
|
const bignumber_js_1 = (0, tslib_1.__importDefault)(require("bignumber.js"));
|
|
12
14
|
const sendTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
13
15
|
return api_client_1.ApiServices.blockchain.bcash.bchBroadcast({
|
|
@@ -16,11 +18,12 @@ const sendTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, v
|
|
|
16
18
|
});
|
|
17
19
|
// @TODO add support - by address
|
|
18
20
|
const prepareSignedTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
21
|
+
var _a, _b;
|
|
19
22
|
try {
|
|
20
23
|
const network = args.testnet
|
|
21
|
-
?
|
|
22
|
-
:
|
|
23
|
-
const transactionBuilder = new
|
|
24
|
+
? coininfo.bitcoincash.test.toBitcoinJS()
|
|
25
|
+
: coininfo.bitcoincash.main.toBitcoinJS();
|
|
26
|
+
const transactionBuilder = new BitcoinCashJS.TransactionBuilder(network);
|
|
24
27
|
const privateKeysToSign = [];
|
|
25
28
|
const amountToSign = [];
|
|
26
29
|
const txs = yield getTransactions(body.fromUTXO.map((u) => u.txHash));
|
|
@@ -30,8 +33,8 @@ const prepareSignedTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0,
|
|
|
30
33
|
privateKeysToSign.push(item.signatureId);
|
|
31
34
|
else if ('privateKey' in item)
|
|
32
35
|
privateKeysToSign.push(item.privateKey);
|
|
33
|
-
const vout = txs[i].vout[item.index];
|
|
34
|
-
if (!vout)
|
|
36
|
+
const vout = (_b = (_a = txs === null || txs === void 0 ? void 0 : txs[i]) === null || _a === void 0 ? void 0 : _a.vout) === null || _b === void 0 ? void 0 : _b[item.index];
|
|
37
|
+
if (!vout || !vout.value)
|
|
35
38
|
throw new bch_sdk_errors_1.BchSdkError(shared_abstract_sdk_1.SdkErrorCode.BTC_BASED_UTXO_NOT_FOUND);
|
|
36
39
|
amountToSign.push(shared_abstract_sdk_1.amountUtils.toSatoshis(vout.value));
|
|
37
40
|
const fromUTXO = body.fromUTXO;
|
|
@@ -44,8 +47,8 @@ const prepareSignedTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0,
|
|
|
44
47
|
});
|
|
45
48
|
verifyAmounts(amountToSign, body);
|
|
46
49
|
for (let i = 0; i < privateKeysToSign.length; i++) {
|
|
47
|
-
const ecPair =
|
|
48
|
-
transactionBuilder.sign(i, ecPair, undefined, 0x01, amountToSign[i], undefined,
|
|
50
|
+
const ecPair = BitcoinCashJS.ECPair.fromWIF(privateKeysToSign[i], network);
|
|
51
|
+
transactionBuilder.sign(i, ecPair, undefined, 0x01, amountToSign[i], undefined, BitcoinCashJS.ECSignature.SCHNORR);
|
|
49
52
|
}
|
|
50
53
|
return transactionBuilder.build().toHex();
|
|
51
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bch.sdk.tx.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.tx.ts"],"names":[],"mappings":";;;;AAAA,oDAM4B;AAC5B,qDAAwD;AACxD,qDAA8C;AAC9C,sEAAwE;
|
|
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,13 +1,13 @@
|
|
|
1
1
|
export declare const bchWallet: () => {
|
|
2
|
-
generateAddressFromXPub
|
|
2
|
+
generateAddressFromXPub(xpub: string, i: number, options?: {
|
|
3
3
|
testnet: boolean;
|
|
4
|
-
})
|
|
5
|
-
generateAddressFromPrivateKey: (privateKey: string, options?: {
|
|
6
|
-
testnet: boolean;
|
|
7
|
-
}) => string;
|
|
4
|
+
}): string;
|
|
8
5
|
generatePrivateKeyFromMnemonic(mnemonic: string, i: number, options?: {
|
|
9
6
|
testnet: boolean;
|
|
10
7
|
}): Promise<string>;
|
|
8
|
+
generateAddressFromPrivateKey(privateKey: string, options?: {
|
|
9
|
+
testnet: boolean;
|
|
10
|
+
}): string;
|
|
11
11
|
generateWallet(mnemonic?: string, options?: {
|
|
12
12
|
testnet: boolean;
|
|
13
13
|
}): Promise<import("../../../../../dist/packages/api-client/src").TronWallet>;
|
|
@@ -1,29 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.bchWallet = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
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
5
|
const shared_blockchain_btc_based_1 = require("@tatumio/shared-blockchain-btc-based");
|
|
9
|
-
const
|
|
10
|
-
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
|
6
|
+
const bch_wallet_utils_1 = require("./bch.wallet.utils");
|
|
11
7
|
const bchWallet = () => {
|
|
12
|
-
|
|
13
|
-
const btcBased = (0, shared_blockchain_btc_based_1.btcBasedWallet)({ blockchain });
|
|
14
|
-
return Object.assign(Object.assign({}, btcBased), { generateAddressFromXPub: (xpub, i, options) => {
|
|
15
|
-
const network = shared_core_1.blockchainUtils.getNetworkConfig(blockchain, options);
|
|
16
|
-
const hdNode = bitcoincashjs2_lib_1.default.HDNode.fromBase58(xpub, network);
|
|
17
|
-
const legacy = hdNode.derivePath(String(i)).getAddress();
|
|
18
|
-
const decoded = bch_address_1.bcashAddressHelper.decode(legacy);
|
|
19
|
-
return cashaddrjs_1.default.encode(decoded.prefix, decoded.type, decoded.hash);
|
|
20
|
-
}, generateAddressFromPrivateKey: (privateKey, options) => {
|
|
21
|
-
const network = shared_core_1.blockchainUtils.getNetworkConfig(blockchain, options);
|
|
22
|
-
const keyPair = bitcoinjs_lib_1.ECPair.fromWIF(privateKey, network);
|
|
23
|
-
const legacy = bitcoinjs_lib_1.payments.p2pkh({ pubkey: keyPair.publicKey, network }).address;
|
|
24
|
-
const decoded = bch_address_1.bcashAddressHelper.decode(legacy);
|
|
25
|
-
return cashaddrjs_1.default.encode(decoded.prefix, decoded.type, decoded.hash);
|
|
26
|
-
} });
|
|
8
|
+
return (0, shared_blockchain_btc_based_1.btcBasedWallet)({ blockchain: shared_core_1.Blockchain.BCH, utils: (0, bch_wallet_utils_1.bchWalletUtils)() });
|
|
27
9
|
};
|
|
28
10
|
exports.bchWallet = bchWallet;
|
|
29
11
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"bch.sdk.wallet.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.wallet.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEjD,sFAAqE;AACrE,yDAAmD;AAE5C,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,OAAO,IAAA,4CAAc,EAAC,EAAE,UAAU,EAAE,wBAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAA,iCAAc,GAAE,EAAE,CAAC,CAAA;AAChF,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bchWalletUtils = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const shared_core_1 = require("@tatumio/shared-core");
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const BitcoinChashJS = (0, tslib_1.__importStar)(require("@tatumio/bitcoincashjs2-lib"));
|
|
8
|
+
const cashaddrjs_1 = (0, tslib_1.__importDefault)(require("cashaddrjs"));
|
|
9
|
+
const shared_blockchain_btc_based_1 = require("@tatumio/shared-blockchain-btc-based");
|
|
10
|
+
const bch_address_1 = require("./utils/bch.address");
|
|
11
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
|
12
|
+
const bchWalletUtils = () => {
|
|
13
|
+
const blockchain = shared_core_1.Blockchain.BCH;
|
|
14
|
+
return Object.assign(Object.assign({}, (0, shared_blockchain_btc_based_1.btcBasedWalletUtils)(blockchain)), { generateAddressFromXPub: (xpub, i, options) => {
|
|
15
|
+
const network = shared_core_1.blockchainUtils.getNetworkConfig(blockchain, options);
|
|
16
|
+
const hdNode = BitcoinChashJS.HDNode.fromBase58(xpub, network);
|
|
17
|
+
const legacy = hdNode.derivePath(String(i)).getAddress();
|
|
18
|
+
const decoded = bch_address_1.bcashAddressHelper.decode(legacy);
|
|
19
|
+
return cashaddrjs_1.default.encode(decoded.prefix, decoded.type, decoded.hash);
|
|
20
|
+
}, generateAddressFromPrivateKey: (privateKey, options) => {
|
|
21
|
+
const network = shared_core_1.blockchainUtils.getNetworkConfig(blockchain, options);
|
|
22
|
+
const keyPair = bitcoinjs_lib_1.ECPair.fromWIF(privateKey, network);
|
|
23
|
+
const legacy = bitcoinjs_lib_1.payments.p2pkh({ pubkey: keyPair.publicKey, network }).address;
|
|
24
|
+
const decoded = bch_address_1.bcashAddressHelper.decode(legacy); // @TODO check if null
|
|
25
|
+
return cashaddrjs_1.default.encode(decoded.prefix, decoded.type, decoded.hash);
|
|
26
|
+
} });
|
|
27
|
+
};
|
|
28
|
+
exports.bchWalletUtils = bchWalletUtils;
|
|
29
|
+
//# sourceMappingURL=bch.wallet.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bch.wallet.utils.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.wallet.utils.ts"],"names":[],"mappings":";;;;AAAA,sDAAkE;AAElE,aAAa;AACb,yFAA6D;AAC7D,yEAAiC;AACjC,sFAA+F;AAC/F,qDAAwD;AACxD,iDAAgD;AAEzC,MAAM,cAAc,GAAG,GAAwB,EAAE;IACtD,MAAM,UAAU,GAAG,wBAAU,CAAC,GAAG,CAAA;IACjC,uCACK,IAAA,iDAAmB,EAAC,UAAU,CAAC,KAClC,uBAAuB,EAAE,CAAC,IAAY,EAAE,CAAS,EAAE,OAA8B,EAAU,EAAE;YAC3F,MAAM,OAAO,GAAG,6BAAe,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACrE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC9D,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,UAAU,EAAE,OAAO,CAAC,CAAA;YACrE,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,MAAO,CAAC,CAAA,CAAC,sBAAsB;YAEzE,OAAO,oBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACpE,CAAC,IACF;AACH,CAAC,CAAA;AAtBY,QAAA,cAAc,kBAsB1B"}
|