@tatumio/bch 2.0.1-alpha.308 → 2.0.1-alpha.309

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@tatumio/bch",
3
- "version": "2.0.1-alpha.308",
3
+ "version": "2.0.1-alpha.309",
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.308",
9
- "@tatumio/api-client": "2.0.1-alpha.308",
8
+ "@tatumio/shared-testing-common": "2.0.1-alpha.309",
9
+ "@tatumio/api-client": "2.0.1-alpha.309",
10
10
  "axios": "^0.26.0",
11
11
  "form-data": "^4.0.0",
12
- "@tatumio/shared-testing-btc-based": "2.0.1-alpha.308",
13
- "@tatumio/shared-blockchain-btc-based": "2.0.1-alpha.308",
14
- "@tatumio/shared-abstract-sdk": "2.0.1-alpha.308",
12
+ "@tatumio/shared-testing-btc-based": "2.0.1-alpha.309",
13
+ "@tatumio/shared-blockchain-btc-based": "2.0.1-alpha.309",
14
+ "@tatumio/shared-abstract-sdk": "2.0.1-alpha.309",
15
15
  "bignumber.js": "^9.0.2",
16
- "@tatumio/shared-core": "2.0.1-alpha.308",
17
- "@tatumio/shared-blockchain-abstract": "2.0.1-alpha.308",
16
+ "@tatumio/shared-core": "2.0.1-alpha.309",
17
+ "@tatumio/shared-blockchain-abstract": "2.0.1-alpha.309",
18
18
  "bip32": "^2.0.5",
19
19
  "bip39": "^3.0.2",
20
20
  "bitcoinjs-lib": "^5.2.0",
@@ -22,6 +22,7 @@
22
22
  "bitcore-lib": "8.25.8",
23
23
  "coininfo": "^5.1.0",
24
24
  "@tatumio/bitcoincashjs2-lib": "^4.1.2",
25
+ "lodash": "^4.17.21",
25
26
  "cashaddrjs": "^0.4.4"
26
27
  },
27
28
  "peerDependencies": {}
@@ -11,6 +11,7 @@ const coininfo = (0, tslib_1.__importStar)(require("coininfo"));
11
11
  // @ts-ignore
12
12
  const BitcoinCashJS = (0, tslib_1.__importStar)(require("@tatumio/bitcoincashjs2-lib"));
13
13
  const bignumber_js_1 = (0, tslib_1.__importDefault)(require("bignumber.js"));
14
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
14
15
  const sendTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
15
16
  return api_client_1.ApiServices.blockchain.bcash.bchBroadcast({
16
17
  txData: yield prepareSignedTransaction(body, args),
@@ -18,7 +19,7 @@ const sendTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, v
18
19
  });
19
20
  // @TODO add support - by address
20
21
  const prepareSignedTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
21
- var _a, _b;
22
+ var _a, _b, _c;
22
23
  try {
23
24
  const network = args.testnet
24
25
  ? coininfo.bitcoincash.test.toBitcoinJS()
@@ -26,6 +27,7 @@ const prepareSignedTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0,
26
27
  const transactionBuilder = new BitcoinCashJS.TransactionBuilder(network);
27
28
  const privateKeysToSign = [];
28
29
  const amountToSign = [];
30
+ const outputs = [];
29
31
  const txs = yield getTransactions(body.fromUTXO.map((u) => u.txHash));
30
32
  for (const [i, item] of body.fromUTXO.entries()) {
31
33
  transactionBuilder.addInput(item.txHash, item.index, 0xffffffff, null);
@@ -43,8 +45,19 @@ const prepareSignedTransaction = (body, args) => (0, tslib_1.__awaiter)(void 0,
43
45
  }
44
46
  }
45
47
  body.to.forEach((item) => {
46
- transactionBuilder.addOutput(bch_address_1.bcashAddressHelper.getAddress(item.address), shared_abstract_sdk_1.amountUtils.toSatoshis(item.value));
48
+ const value = shared_abstract_sdk_1.amountUtils.toSatoshis(item.value);
49
+ transactionBuilder.addOutput(bch_address_1.bcashAddressHelper.getAddress(item.address), value);
50
+ outputs.push(value);
47
51
  });
52
+ // send the change to change address
53
+ if (body.changeAddress) {
54
+ const sumOfInputs = lodash_1.default.sum(amountToSign);
55
+ const sumOfOutputs = lodash_1.default.sum(outputs);
56
+ const defaultFee = 0.00001;
57
+ const txFee = shared_abstract_sdk_1.amountUtils.toSatoshis((_c = body.fee) !== null && _c !== void 0 ? _c : defaultFee);
58
+ const change = Number(new bignumber_js_1.default(sumOfInputs).minus(sumOfOutputs).minus(txFee));
59
+ transactionBuilder.addOutput(body.changeAddress, change);
60
+ }
48
61
  verifyAmounts(amountToSign, body);
49
62
  for (let i = 0; i < privateKeysToSign.length; i++) {
50
63
  const ecPair = BitcoinCashJS.ECPair.fromWIF(privateKeysToSign[i], network);
@@ -1 +1 @@
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
+ {"version":3,"file":"bch.sdk.tx.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/bch/src/lib/bch.sdk.tx.ts"],"names":[],"mappings":"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"}