@tatumio/doge 2.1.19 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@tatumio/doge",
3
- "version": "2.1.19",
3
+ "version": "2.2.1",
4
4
  "license": "MIT",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
7
7
  "dependencies": {
8
- "@tatumio/shared-testing-common": "2.1.19",
9
- "@tatumio/api-client": "2.1.19",
8
+ "@tatumio/shared-testing-common": "2.2.1",
9
+ "@tatumio/api-client": "2.2.1",
10
10
  "axios": "^0.26.0",
11
11
  "form-data": "^4.0.0",
12
- "@tatumio/shared-testing-btc-based": "2.1.19",
13
- "@tatumio/shared-blockchain-btc-based": "2.1.19",
14
- "@tatumio/shared-abstract-sdk": "2.1.19",
12
+ "@tatumio/shared-testing-btc-based": "2.2.1",
13
+ "@tatumio/shared-blockchain-btc-based": "2.2.1",
14
+ "@tatumio/shared-abstract-sdk": "2.2.1",
15
15
  "bignumber.js": "^9.0.2",
16
- "@tatumio/shared-core": "2.1.19",
16
+ "@tatumio/shared-core": "2.2.1",
17
17
  "lodash": "^4.17.21",
18
- "@tatumio/shared-blockchain-abstract": "2.1.19",
18
+ "@tatumio/shared-blockchain-abstract": "2.2.1",
19
19
  "bip32": "^2.0.5",
20
20
  "bip39": "^3.0.2",
21
21
  "bitcoinjs-lib": "^5.2.0",
package/src/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from './lib/doge.sdk';
2
2
  export { DogeTransactionTypes, dogeTransactions } from './lib/doge.sdk.tx';
3
3
  export { dogeWallet } from './lib/doge.sdk.wallet';
4
- export { DogeTransactionAddress } from './lib/doge.sdk.tx';
@@ -1,30 +1,8 @@
1
- import { ApiServices, DogeTransactionUTXO, DogeTransactionUTXOKMS } from '@tatumio/api-client';
1
+ import { ApiServices, DataApiService, DogeTransactionAddress, DogeTransactionAddressKMS, DogeTransactionUTXO, DogeTransactionUTXOKMS } from '@tatumio/api-client';
2
2
  import { BtcBasedTx } from '@tatumio/shared-blockchain-btc-based';
3
- interface DogeTransactionBase {
4
- to: Array<{
5
- address: string;
6
- value: number;
7
- }>;
8
- fee?: string;
9
- changeAddress?: string;
10
- }
11
- export interface DogeTransactionAddress extends DogeTransactionBase {
12
- fromAddress: {
13
- address: string;
14
- privateKey: string;
15
- }[];
16
- }
17
- interface DogeTransactionAddressKMS extends DogeTransactionBase {
18
- fromAddress: {
19
- address: string;
20
- signatureId: string;
21
- index?: number;
22
- }[];
23
- }
24
3
  export declare type DogeTransactionTypes = DogeTransactionUTXO | DogeTransactionUTXOKMS | DogeTransactionAddress | DogeTransactionAddressKMS;
25
4
  export declare const dogeTransactions: (apiCalls?: {
26
5
  dogeBroadcast: typeof ApiServices.blockchain.doge.dogeBroadcast;
27
- getTxByAddress: typeof ApiServices.blockchain.doge.dogeGetTxByAddress;
6
+ getUTXOsByAddress: typeof DataApiService.getUtxosByAddress;
28
7
  getUtxo: typeof ApiServices.blockchain.doge.dogeGetUtxo;
29
8
  }) => BtcBasedTx<DogeTransactionTypes>;
30
- export {};
@@ -9,10 +9,10 @@ const shared_abstract_sdk_1 = require("@tatumio/shared-abstract-sdk");
9
9
  const doge_sdk_errors_1 = require("./doge.sdk.errors");
10
10
  const dogeTransactions = (apiCalls = {
11
11
  dogeBroadcast: api_client_1.ApiServices.blockchain.doge.dogeBroadcast,
12
- getTxByAddress: api_client_1.ApiServices.blockchain.doge.dogeGetTxByAddress,
12
+ getUTXOsByAddress: api_client_1.DataApiService.getUtxosByAddress,
13
13
  getUtxo: api_client_1.ApiServices.blockchain.doge.dogeGetUtxo,
14
14
  }) => {
15
- const prepareSignedTransaction = (body) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
15
+ const prepareSignedTransaction = (body, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
16
16
  try {
17
17
  const { to, fee, changeAddress } = body;
18
18
  const transaction = new bitcore_lib_doge_1.Transaction();
@@ -25,12 +25,14 @@ const dogeTransactions = (apiCalls = {
25
25
  }
26
26
  if ('fromUTXO' in body) {
27
27
  for (const item of body.fromUTXO) {
28
- transaction.from({
29
- txId: item.txHash,
30
- outputIndex: item.index,
31
- script: bitcore_lib_doge_1.Script.fromAddress(item.address).toString(),
32
- satoshis: shared_abstract_sdk_1.amountUtils.toSatoshis(item.value),
33
- });
28
+ transaction.from([
29
+ bitcore_lib_doge_1.Transaction.UnspentOutput.fromObject({
30
+ txId: item.txHash,
31
+ outputIndex: item.index,
32
+ script: bitcore_lib_doge_1.Script.fromAddress(item.address).toString(),
33
+ satoshis: shared_abstract_sdk_1.amountUtils.toSatoshis(item.value),
34
+ }),
35
+ ]);
34
36
  if ('signatureId' in item)
35
37
  privateKeysToSign.push(item.signatureId);
36
38
  else if ('privateKey' in item)
@@ -40,44 +42,25 @@ const dogeTransactions = (apiCalls = {
40
42
  else if ('fromAddress' in body) {
41
43
  let totalInputs = 0;
42
44
  for (const item of body.fromAddress) {
43
- const utxos = [];
44
- const txs = yield apiCalls.getTxByAddress(item.address, 50, 0, 'incoming');
45
45
  if (totalInputs >= totalOutputs) {
46
46
  break;
47
47
  }
48
- for (const tx of txs) {
49
- if (totalInputs >= totalOutputs) {
50
- break;
51
- }
52
- if (!tx.outputs || !tx.hash)
53
- continue;
54
- for (const [i, o] of tx.outputs.entries()) {
55
- if (o.address !== item.address) {
56
- continue;
57
- }
58
- if (totalInputs >= totalOutputs) {
59
- break;
60
- }
61
- const utxo = yield getUtxoSilent(tx.hash, i);
62
- if (utxo === null) {
63
- continue;
64
- }
65
- utxos.push(utxo);
66
- const satoshis = shared_abstract_sdk_1.amountUtils.toSatoshis(utxo.value);
67
- totalInputs += satoshis;
68
- transaction.from([
69
- bitcore_lib_doge_1.Transaction.UnspentOutput.fromObject({
70
- txId: tx.hash,
71
- outputIndex: i,
72
- script: bitcore_lib_doge_1.Script.fromAddress(o.address).toString(),
73
- satoshis,
74
- }),
75
- ]);
76
- if ('signatureId' in item)
77
- privateKeysToSign.push(item.signatureId);
78
- else if ('privateKey' in item)
79
- privateKeysToSign.push(item.privateKey);
80
- }
48
+ const utxos = yield apiCalls.getUTXOsByAddress(options.testnet ? 'doge-testnet' : 'doge', item.address, shared_abstract_sdk_1.amountUtils.fromSatoshis(totalOutputs - totalInputs));
49
+ for (const utxo of utxos) {
50
+ const satoshis = shared_abstract_sdk_1.amountUtils.toSatoshis(utxo.value);
51
+ totalInputs += satoshis;
52
+ transaction.from([
53
+ bitcore_lib_doge_1.Transaction.UnspentOutput.fromObject({
54
+ txId: utxo.txHash,
55
+ outputIndex: utxo.index,
56
+ script: bitcore_lib_doge_1.Script.fromAddress(utxo.address).toString(),
57
+ satoshis,
58
+ }),
59
+ ]);
60
+ if ('signatureId' in item)
61
+ privateKeysToSign.push(item.signatureId);
62
+ else if ('privateKey' in item)
63
+ privateKeysToSign.push(item.privateKey);
81
64
  }
82
65
  }
83
66
  }
@@ -107,9 +90,9 @@ const dogeTransactions = (apiCalls = {
107
90
  }
108
91
  });
109
92
  }
110
- const sendTransaction = (body) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
93
+ const sendTransaction = (body, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
111
94
  return apiCalls.dogeBroadcast({
112
- txData: yield prepareSignedTransaction(body),
95
+ txData: yield prepareSignedTransaction(body, options),
113
96
  });
114
97
  });
115
98
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"doge.sdk.tx.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/doge/src/lib/doge.sdk.tx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doge.sdk.tx.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/doge/src/lib/doge.sdk.tx.ts"],"names":[],"mappings":"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"}