@atomicfinance/utils 3.6.0 → 4.0.0

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/dist/bitcoin.js CHANGED
@@ -34,11 +34,83 @@ const bignumber_js_1 = __importDefault(require("bignumber.js"));
34
34
  const varuint = __importStar(require("bip174/src/lib/converter/varint"));
35
35
  const bitcoin_networks_1 = require("bitcoin-networks");
36
36
  const bitcoin = __importStar(require("bitcoinjs-lib"));
37
- const classify = __importStar(require("bitcoinjs-lib/src/classify"));
38
37
  const coinselect_1 = __importDefault(require("coinselect"));
39
38
  const accumulative_1 = __importDefault(require("coinselect/accumulative"));
40
39
  const lodash_1 = require("lodash");
41
40
  const _1 = require("./");
41
+ // Script type constants (replacing the classify module)
42
+ const SCRIPT_TYPES = {
43
+ P2PKH: 'pubkeyhash',
44
+ P2SH: 'scripthash',
45
+ P2WPKH: 'witness_v0_keyhash',
46
+ P2WSH: 'witness_v0_scripthash',
47
+ P2TR: 'witness_v1_taproot',
48
+ NULLDATA: 'nulldata',
49
+ NONSTANDARD: 'nonstandard',
50
+ MULTISIG: 'multisig',
51
+ P2PK: 'pubkey',
52
+ };
53
+ // Custom script classification function
54
+ function classifyScript(script) {
55
+ if (script.length === 0)
56
+ return SCRIPT_TYPES.NONSTANDARD;
57
+ // P2PKH: OP_DUP OP_HASH160 <20 bytes> OP_EQUALVERIFY OP_CHECKSIG
58
+ if (script.length === 25 &&
59
+ script[0] === 0x76 && // OP_DUP
60
+ script[1] === 0xa9 && // OP_HASH160
61
+ script[2] === 0x14 && // 20 bytes
62
+ script[23] === 0x88 && // OP_EQUALVERIFY
63
+ script[24] === 0xac) {
64
+ // OP_CHECKSIG
65
+ return SCRIPT_TYPES.P2PKH;
66
+ }
67
+ // P2SH: OP_HASH160 <20 bytes> OP_EQUAL
68
+ if (script.length === 23 &&
69
+ script[0] === 0xa9 && // OP_HASH160
70
+ script[1] === 0x14 && // 20 bytes
71
+ script[22] === 0x87) {
72
+ // OP_EQUAL
73
+ return SCRIPT_TYPES.P2SH;
74
+ }
75
+ // P2WPKH: OP_0 <20 bytes>
76
+ if (script.length === 22 &&
77
+ script[0] === 0x00 && // OP_0
78
+ script[1] === 0x14) {
79
+ // 20 bytes
80
+ return SCRIPT_TYPES.P2WPKH;
81
+ }
82
+ // P2WSH: OP_0 <32 bytes>
83
+ if (script.length === 34 &&
84
+ script[0] === 0x00 && // OP_0
85
+ script[1] === 0x20) {
86
+ // 32 bytes
87
+ return SCRIPT_TYPES.P2WSH;
88
+ }
89
+ // P2TR: OP_1 <32 bytes>
90
+ if (script.length === 34 &&
91
+ script[0] === 0x51 && // OP_1
92
+ script[1] === 0x20) {
93
+ // 32 bytes
94
+ return SCRIPT_TYPES.P2TR;
95
+ }
96
+ // OP_RETURN (nulldata)
97
+ if (script.length >= 1 && script[0] === 0x6a) {
98
+ // OP_RETURN
99
+ return SCRIPT_TYPES.NULLDATA;
100
+ }
101
+ // P2PK: <33 or 65 bytes pubkey> OP_CHECKSIG
102
+ if ((script.length === 35 || script.length === 67) &&
103
+ script[script.length - 1] === 0xac) {
104
+ // OP_CHECKSIG
105
+ return SCRIPT_TYPES.P2PK;
106
+ }
107
+ // Basic multisig detection: OP_M <pubkeys> OP_N OP_CHECKMULTISIG
108
+ if (script.length >= 4 && script[script.length - 1] === 0xae) {
109
+ // OP_CHECKMULTISIG
110
+ return SCRIPT_TYPES.MULTISIG;
111
+ }
112
+ return SCRIPT_TYPES.NONSTANDARD;
113
+ }
42
114
  const AddressTypes = ['legacy', 'p2sh-segwit', 'bech32'];
43
115
  exports.AddressTypes = AddressTypes;
44
116
  function calculateFee(numInputs, numOutputs, feePerByte) {
@@ -103,8 +175,8 @@ function selectCoins(utxos, targets, feePerByte, fixedInputs = []) {
103
175
  }
104
176
  exports.selectCoins = selectCoins;
105
177
  const OUTPUT_TYPES_MAP = {
106
- [classify.types.P2WPKH]: 'witness_v0_keyhash',
107
- [classify.types.P2WSH]: 'witness_v0_scripthash',
178
+ [SCRIPT_TYPES.P2WPKH]: 'witness_v0_keyhash',
179
+ [SCRIPT_TYPES.P2WSH]: 'witness_v0_scripthash',
108
180
  };
109
181
  function decodeRawTransaction(hex, network) {
110
182
  const bjsTx = bitcoin.Transaction.fromHex(hex);
@@ -121,7 +193,7 @@ function decodeRawTransaction(hex, network) {
121
193
  };
122
194
  });
123
195
  const vout = bjsTx.outs.map((output, n) => {
124
- const type = classify.output(output.script);
196
+ const type = classifyScript(output.script);
125
197
  const vout = {
126
198
  value: output.value / 1e8,
127
199
  n,
@@ -209,8 +281,8 @@ function witnessStackToScriptWitness(witness) {
209
281
  exports.witnessStackToScriptWitness = witnessStackToScriptWitness;
210
282
  function getPubKeyHash(address, network) {
211
283
  const outputScript = bitcoin.address.toOutputScript(address, network);
212
- const type = classify.output(outputScript);
213
- if (![classify.types.P2PKH, classify.types.P2WPKH].includes(type)) {
284
+ const type = classifyScript(outputScript);
285
+ if (type !== SCRIPT_TYPES.P2PKH && type !== SCRIPT_TYPES.P2WPKH) {
214
286
  throw new Error(`Bitcoin swap doesn't support the address ${address} type of ${type}. Not possible to derive public key hash.`);
215
287
  }
216
288
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"bitcoin.js","sourceRoot":"","sources":["../lib/bitcoin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitcoin.js","sourceRoot":"","sources":["../lib/bitcoin.ts"],"names":[],"mappings":"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"}
package/lib/bitcoin.ts CHANGED
@@ -10,13 +10,107 @@ import BigNumber from 'bignumber.js';
10
10
  import * as varuint from 'bip174/src/lib/converter/varint';
11
11
  import { BitcoinNetwork, BitcoinNetworks } from 'bitcoin-networks';
12
12
  import * as bitcoin from 'bitcoinjs-lib';
13
- import * as classify from 'bitcoinjs-lib/src/classify';
14
13
  import coinselect from 'coinselect';
15
14
  import coinselectAccumulative from 'coinselect/accumulative';
16
15
  import { findKey } from 'lodash';
17
16
 
18
17
  import { addressToString } from './';
19
18
 
19
+ // Script type constants (replacing the classify module)
20
+ const SCRIPT_TYPES = {
21
+ P2PKH: 'pubkeyhash',
22
+ P2SH: 'scripthash',
23
+ P2WPKH: 'witness_v0_keyhash',
24
+ P2WSH: 'witness_v0_scripthash',
25
+ P2TR: 'witness_v1_taproot',
26
+ NULLDATA: 'nulldata',
27
+ NONSTANDARD: 'nonstandard',
28
+ MULTISIG: 'multisig',
29
+ P2PK: 'pubkey',
30
+ } as const;
31
+
32
+ // Custom script classification function
33
+ function classifyScript(script: Buffer): string {
34
+ if (script.length === 0) return SCRIPT_TYPES.NONSTANDARD;
35
+
36
+ // P2PKH: OP_DUP OP_HASH160 <20 bytes> OP_EQUALVERIFY OP_CHECKSIG
37
+ if (
38
+ script.length === 25 &&
39
+ script[0] === 0x76 && // OP_DUP
40
+ script[1] === 0xa9 && // OP_HASH160
41
+ script[2] === 0x14 && // 20 bytes
42
+ script[23] === 0x88 && // OP_EQUALVERIFY
43
+ script[24] === 0xac
44
+ ) {
45
+ // OP_CHECKSIG
46
+ return SCRIPT_TYPES.P2PKH;
47
+ }
48
+
49
+ // P2SH: OP_HASH160 <20 bytes> OP_EQUAL
50
+ if (
51
+ script.length === 23 &&
52
+ script[0] === 0xa9 && // OP_HASH160
53
+ script[1] === 0x14 && // 20 bytes
54
+ script[22] === 0x87
55
+ ) {
56
+ // OP_EQUAL
57
+ return SCRIPT_TYPES.P2SH;
58
+ }
59
+
60
+ // P2WPKH: OP_0 <20 bytes>
61
+ if (
62
+ script.length === 22 &&
63
+ script[0] === 0x00 && // OP_0
64
+ script[1] === 0x14
65
+ ) {
66
+ // 20 bytes
67
+ return SCRIPT_TYPES.P2WPKH;
68
+ }
69
+
70
+ // P2WSH: OP_0 <32 bytes>
71
+ if (
72
+ script.length === 34 &&
73
+ script[0] === 0x00 && // OP_0
74
+ script[1] === 0x20
75
+ ) {
76
+ // 32 bytes
77
+ return SCRIPT_TYPES.P2WSH;
78
+ }
79
+
80
+ // P2TR: OP_1 <32 bytes>
81
+ if (
82
+ script.length === 34 &&
83
+ script[0] === 0x51 && // OP_1
84
+ script[1] === 0x20
85
+ ) {
86
+ // 32 bytes
87
+ return SCRIPT_TYPES.P2TR;
88
+ }
89
+
90
+ // OP_RETURN (nulldata)
91
+ if (script.length >= 1 && script[0] === 0x6a) {
92
+ // OP_RETURN
93
+ return SCRIPT_TYPES.NULLDATA;
94
+ }
95
+
96
+ // P2PK: <33 or 65 bytes pubkey> OP_CHECKSIG
97
+ if (
98
+ (script.length === 35 || script.length === 67) &&
99
+ script[script.length - 1] === 0xac
100
+ ) {
101
+ // OP_CHECKSIG
102
+ return SCRIPT_TYPES.P2PK;
103
+ }
104
+
105
+ // Basic multisig detection: OP_M <pubkeys> OP_N OP_CHECKMULTISIG
106
+ if (script.length >= 4 && script[script.length - 1] === 0xae) {
107
+ // OP_CHECKMULTISIG
108
+ return SCRIPT_TYPES.MULTISIG;
109
+ }
110
+
111
+ return SCRIPT_TYPES.NONSTANDARD;
112
+ }
113
+
20
114
  const AddressTypes = ['legacy', 'p2sh-segwit', 'bech32'];
21
115
 
22
116
  function calculateFee(
@@ -125,8 +219,8 @@ function selectCoins(
125
219
  }
126
220
 
127
221
  const OUTPUT_TYPES_MAP = {
128
- [classify.types.P2WPKH]: 'witness_v0_keyhash',
129
- [classify.types.P2WSH]: 'witness_v0_scripthash',
222
+ [SCRIPT_TYPES.P2WPKH]: 'witness_v0_keyhash',
223
+ [SCRIPT_TYPES.P2WSH]: 'witness_v0_scripthash',
130
224
  };
131
225
 
132
226
  function decodeRawTransaction(
@@ -149,7 +243,7 @@ function decodeRawTransaction(
149
243
  });
150
244
 
151
245
  const vout = bjsTx.outs.map((output, n) => {
152
- const type = classify.output(output.script);
246
+ const type = classifyScript(output.script);
153
247
 
154
248
  const vout: bT.Output = {
155
249
  value: output.value / 1e8,
@@ -257,8 +351,8 @@ function witnessStackToScriptWitness(witness: Buffer[]): Buffer {
257
351
 
258
352
  function getPubKeyHash(address: string, network: BitcoinNetwork) {
259
353
  const outputScript = bitcoin.address.toOutputScript(address, network);
260
- const type = classify.output(outputScript);
261
- if (![classify.types.P2PKH, classify.types.P2WPKH].includes(type)) {
354
+ const type = classifyScript(outputScript);
355
+ if (type !== SCRIPT_TYPES.P2PKH && type !== SCRIPT_TYPES.P2WPKH) {
262
356
  throw new Error(
263
357
  `Bitcoin swap doesn't support the address ${address} type of ${type}. Not possible to derive public key hash.`,
264
358
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomicfinance/utils",
3
- "version": "3.6.0",
3
+ "version": "4.0.0",
4
4
  "description": "",
5
5
  "module": "dist/index.js",
6
6
  "main": "dist/index.js",
@@ -23,14 +23,14 @@
23
23
  "node": ">=14"
24
24
  },
25
25
  "dependencies": {
26
- "@atomicfinance/crypto": "^3.6.0",
27
- "@atomicfinance/errors": "^3.6.0",
28
- "@atomicfinance/types": "^3.6.0",
26
+ "@atomicfinance/crypto": "^4.0.0",
27
+ "@atomicfinance/errors": "^4.0.0",
28
+ "@atomicfinance/types": "^4.0.0",
29
29
  "@babel/runtime": "^7.12.1",
30
30
  "bignumber.js": "^9.0.0",
31
31
  "bip174": "^2.0.1",
32
32
  "bitcoin-networks": "^1.0.0",
33
- "bitcoinjs-lib": "5.2.0",
33
+ "bitcoinjs-lib": "6.1.7",
34
34
  "coinselect": "^3.1.11",
35
35
  "lodash": "^4.17.20",
36
36
  "setimmediate": "^1.0.5"