@airgap/bitcoin 0.13.10 → 0.13.11-beta.1

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.
Files changed (143) hide show
  1. package/package.json +11 -9
  2. package/airgap-coinlib-bitcoin.min.js +0 -99733
  3. package/index.d.ts +0 -1
  4. package/index.js +0 -18
  5. package/index.js.map +0 -1
  6. package/v0/index.d.ts +0 -14
  7. package/v0/index.js +0 -34
  8. package/v0/index.js.map +0 -1
  9. package/v0/protocol/BitcoinAddress.d.ts +0 -9
  10. package/v0/protocol/BitcoinAddress.js +0 -23
  11. package/v0/protocol/BitcoinAddress.js.map +0 -1
  12. package/v0/protocol/BitcoinCryptoClient.d.ts +0 -11
  13. package/v0/protocol/BitcoinCryptoClient.js +0 -91
  14. package/v0/protocol/BitcoinCryptoClient.js.map +0 -1
  15. package/v0/protocol/BitcoinProtocol.d.ts +0 -167
  16. package/v0/protocol/BitcoinProtocol.js +0 -1063
  17. package/v0/protocol/BitcoinProtocol.js.map +0 -1
  18. package/v0/protocol/BitcoinProtocolOptions.d.ts +0 -26
  19. package/v0/protocol/BitcoinProtocolOptions.js +0 -148
  20. package/v0/protocol/BitcoinProtocolOptions.js.map +0 -1
  21. package/v0/protocol/BitcoinSegwitAddress.d.ts +0 -7
  22. package/v0/protocol/BitcoinSegwitAddress.js +0 -41
  23. package/v0/protocol/BitcoinSegwitAddress.js.map +0 -1
  24. package/v0/protocol/BitcoinSegwitProtocol.d.ts +0 -28
  25. package/v0/protocol/BitcoinSegwitProtocol.js +0 -541
  26. package/v0/protocol/BitcoinSegwitProtocol.js.map +0 -1
  27. package/v0/protocol/BitcoinTestnetProtocol.d.ts +0 -7
  28. package/v0/protocol/BitcoinTestnetProtocol.js +0 -58
  29. package/v0/protocol/BitcoinTestnetProtocol.js.map +0 -1
  30. package/v0/protocol/BitcoinTypes.d.ts +0 -21
  31. package/v0/protocol/BitcoinTypes.js +0 -3
  32. package/v0/protocol/BitcoinTypes.js.map +0 -1
  33. package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin-segwit.json +0 -0
  34. package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin.json +0 -73
  35. package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin-segwit.json +0 -0
  36. package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin.json +0 -37
  37. package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin-segwit.json +0 -29
  38. package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin.json +0 -73
  39. package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin-segwit.json +0 -19
  40. package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin.json +0 -37
  41. package/v0/serializer/validators/transaction-validator.d.ts +0 -15
  42. package/v0/serializer/validators/transaction-validator.js +0 -81
  43. package/v0/serializer/validators/transaction-validator.js.map +0 -1
  44. package/v0/serializer/validators/validators.d.ts +0 -1
  45. package/v0/serializer/validators/validators.js +0 -151
  46. package/v0/serializer/validators/validators.js.map +0 -1
  47. package/v0/types/signed-transaction-bitcoin-segwit.d.ts +0 -5
  48. package/v0/types/signed-transaction-bitcoin-segwit.js +0 -3
  49. package/v0/types/signed-transaction-bitcoin-segwit.js.map +0 -1
  50. package/v0/types/signed-transaction-bitcoin.d.ts +0 -9
  51. package/v0/types/signed-transaction-bitcoin.js +0 -3
  52. package/v0/types/signed-transaction-bitcoin.js.map +0 -1
  53. package/v0/types/transaction-bitcoin.d.ts +0 -20
  54. package/v0/types/transaction-bitcoin.js +0 -3
  55. package/v0/types/transaction-bitcoin.js.map +0 -1
  56. package/v0/types/unsigned-transaction-bitcoin-segwit.d.ts +0 -7
  57. package/v0/types/unsigned-transaction-bitcoin-segwit.js +0 -3
  58. package/v0/types/unsigned-transaction-bitcoin-segwit.js.map +0 -1
  59. package/v0/types/unsigned-transaction-bitcoin.d.ts +0 -22
  60. package/v0/types/unsigned-transaction-bitcoin.js +0 -3
  61. package/v0/types/unsigned-transaction-bitcoin.js.map +0 -1
  62. package/v1/block-explorer/BlockCypherBlockExplorer.d.ts +0 -9
  63. package/v1/block-explorer/BlockCypherBlockExplorer.js +0 -74
  64. package/v1/block-explorer/BlockCypherBlockExplorer.js.map +0 -1
  65. package/v1/data/BitcoinAddress.d.ts +0 -7
  66. package/v1/data/BitcoinAddress.js +0 -20
  67. package/v1/data/BitcoinAddress.js.map +0 -1
  68. package/v1/data/BitcoinSegwitAddress.d.ts +0 -8
  69. package/v1/data/BitcoinSegwitAddress.js +0 -25
  70. package/v1/data/BitcoinSegwitAddress.js.map +0 -1
  71. package/v1/index.d.ts +0 -19
  72. package/v1/index.js +0 -24
  73. package/v1/index.js.map +0 -1
  74. package/v1/module/BitcoinModule.d.ts +0 -16
  75. package/v1/module/BitcoinModule.js +0 -112
  76. package/v1/module/BitcoinModule.js.map +0 -1
  77. package/v1/protocol/BitcoinCryptoClient.d.ts +0 -12
  78. package/v1/protocol/BitcoinCryptoClient.js +0 -96
  79. package/v1/protocol/BitcoinCryptoClient.js.map +0 -1
  80. package/v1/protocol/BitcoinProtocol.d.ts +0 -69
  81. package/v1/protocol/BitcoinProtocol.js +0 -1211
  82. package/v1/protocol/BitcoinProtocol.js.map +0 -1
  83. package/v1/protocol/BitcoinSegwitProtocol.d.ts +0 -52
  84. package/v1/protocol/BitcoinSegwitProtocol.js +0 -751
  85. package/v1/protocol/BitcoinSegwitProtocol.js.map +0 -1
  86. package/v1/protocol/BitcoinTestnetProtocol.d.ts +0 -11
  87. package/v1/protocol/BitcoinTestnetProtocol.js +0 -67
  88. package/v1/protocol/BitcoinTestnetProtocol.js.map +0 -1
  89. package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +0 -13
  90. package/v1/serializer/v3/schemas/converter/transaction-converter.js +0 -75
  91. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +0 -1
  92. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.d.ts +0 -4
  93. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js +0 -3
  94. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js.map +0 -1
  95. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.d.ts +0 -4
  96. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js +0 -3
  97. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js.map +0 -1
  98. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.d.ts +0 -3
  99. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js +0 -3
  100. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js.map +0 -1
  101. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.d.ts +0 -7
  102. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js +0 -3
  103. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js.map +0 -1
  104. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-segwit.json +0 -29
  105. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin.json +0 -79
  106. package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-segwit.json +0 -19
  107. package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin.json +0 -37
  108. package/v1/serializer/v3/serializer-companion.d.ts +0 -14
  109. package/v1/serializer/v3/serializer-companion.js +0 -197
  110. package/v1/serializer/v3/serializer-companion.js.map +0 -1
  111. package/v1/serializer/v3/validators/transaction-validator.d.ts +0 -7
  112. package/v1/serializer/v3/validators/transaction-validator.js +0 -56
  113. package/v1/serializer/v3/validators/transaction-validator.js.map +0 -1
  114. package/v1/serializer/v3/validators/validators.d.ts +0 -7
  115. package/v1/serializer/v3/validators/validators.js +0 -254
  116. package/v1/serializer/v3/validators/validators.js.map +0 -1
  117. package/v1/types/bitcoinjs.d.ts +0 -14
  118. package/v1/types/bitcoinjs.js +0 -3
  119. package/v1/types/bitcoinjs.js.map +0 -1
  120. package/v1/types/indexer.d.ts +0 -81
  121. package/v1/types/indexer.js +0 -3
  122. package/v1/types/indexer.js.map +0 -1
  123. package/v1/types/key.d.ts +0 -6
  124. package/v1/types/key.js +0 -3
  125. package/v1/types/key.js.map +0 -1
  126. package/v1/types/protocol.d.ts +0 -17
  127. package/v1/types/protocol.js +0 -3
  128. package/v1/types/protocol.js.map +0 -1
  129. package/v1/types/transaction.d.ts +0 -39
  130. package/v1/types/transaction.js +0 -3
  131. package/v1/types/transaction.js.map +0 -1
  132. package/v1/utils/common.d.ts +0 -2
  133. package/v1/utils/common.js +0 -28
  134. package/v1/utils/common.js.map +0 -1
  135. package/v1/utils/key.d.ts +0 -12
  136. package/v1/utils/key.js +0 -158
  137. package/v1/utils/key.js.map +0 -1
  138. package/v1/utils/network.d.ts +0 -2
  139. package/v1/utils/network.js +0 -22
  140. package/v1/utils/network.js.map +0 -1
  141. package/v1/utils/signature.d.ts +0 -2
  142. package/v1/utils/signature.js +0 -34
  143. package/v1/utils/signature.js.map +0 -1
@@ -1,541 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
22
- }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
41
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
42
- return new (P || (P = Promise))(function (resolve, reject) {
43
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
44
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
45
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
46
- step((generator = generator.apply(thisArg, _arguments || [])).next());
47
- });
48
- };
49
- var __generator = (this && this.__generator) || function (thisArg, body) {
50
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
51
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
52
- function verb(n) { return function (v) { return step([n, v]); }; }
53
- function step(op) {
54
- if (f) throw new TypeError("Generator is already executing.");
55
- while (_) try {
56
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
57
- if (y = 0, t) op = [op[0] & 2, t.value];
58
- switch (op[0]) {
59
- case 0: case 1: t = op; break;
60
- case 4: _.label++; return { value: op[1], done: false };
61
- case 5: _.label++; y = op[1]; op = [0]; continue;
62
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
63
- default:
64
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
65
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
66
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
67
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
68
- if (t[2]) _.ops.pop();
69
- _.trys.pop(); continue;
70
- }
71
- op = body.call(thisArg, _);
72
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
73
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
74
- }
75
- };
76
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
77
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
78
- if (ar || !(i in from)) {
79
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
80
- ar[i] = from[i];
81
- }
82
- }
83
- return to.concat(ar || Array.prototype.slice.call(from));
84
- };
85
- var __importDefault = (this && this.__importDefault) || function (mod) {
86
- return (mod && mod.__esModule) ? mod : { "default": mod };
87
- };
88
- Object.defineProperty(exports, "__esModule", { value: true });
89
- exports.BitcoinSegwitProtocol = void 0;
90
- var index_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/axios-0.19.0/index"));
91
- var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
92
- var index_2 = require("@airgap/coinlib-core/dependencies/src/bip39-2.5.0/index");
93
- var bs58check = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2"));
94
- var ProtocolSymbols_1 = require("@airgap/coinlib-core/utils/ProtocolSymbols");
95
- var bitcoinJS = __importStar(require("bitcoinjs-lib"));
96
- var BitcoinProtocol_1 = require("./BitcoinProtocol");
97
- var BitcoinProtocolOptions_1 = require("./BitcoinProtocolOptions");
98
- var BitcoinSegwitAddress_1 = require("./BitcoinSegwitAddress");
99
- var DUST_AMOUNT = 50;
100
- // This function handles arrays and objects
101
- function eachRecursive(obj) {
102
- for (var k in obj) {
103
- if (Buffer.isBuffer(obj[k])) {
104
- obj[k] = obj[k].toString('hex');
105
- }
106
- if (typeof obj[k] === 'object' && obj[k] !== null) {
107
- obj[k] = eachRecursive(obj[k]);
108
- }
109
- }
110
- return obj;
111
- }
112
- // https://github.com/satoshilabs/slips/blob/master/slip-0132.md
113
- var ExtendedPublicKey = /** @class */ (function () {
114
- function ExtendedPublicKey(extendedPublicKey) {
115
- this.rawKey = bs58check.decode(extendedPublicKey).slice(4);
116
- }
117
- ExtendedPublicKey.prototype.toXpub = function () {
118
- return this.addPrefix('0488b21e');
119
- };
120
- ExtendedPublicKey.prototype.toYPub = function () {
121
- return this.addPrefix('049d7cb2');
122
- };
123
- ExtendedPublicKey.prototype.toZPub = function () {
124
- return this.addPrefix('04b24746');
125
- };
126
- ExtendedPublicKey.prototype.addPrefix = function (prefix) {
127
- var data = Buffer.concat([Buffer.from(prefix, 'hex'), this.rawKey]);
128
- return bs58check.encode(data);
129
- };
130
- return ExtendedPublicKey;
131
- }());
132
- var BitcoinSegwitProtocol = /** @class */ (function (_super) {
133
- __extends(BitcoinSegwitProtocol, _super);
134
- function BitcoinSegwitProtocol(options) {
135
- if (options === void 0) { options = new BitcoinProtocolOptions_1.BitcoinProtocolOptions(); }
136
- var _this = _super.call(this, options) || this;
137
- _this.name = 'Bitcoin (Segwit)';
138
- _this.identifier = ProtocolSymbols_1.MainProtocolSymbols.BTC_SEGWIT;
139
- _this.standardDerivationPath = "m/84'/0'/0'";
140
- _this.addressPlaceholder = 'bc1...';
141
- return _this;
142
- }
143
- BitcoinSegwitProtocol.prototype.getPublicKeyFromHexSecret = function (secret, derivationPath) {
144
- return __awaiter(this, void 0, void 0, function () {
145
- var bitcoinNode, neutered, zpub;
146
- return __generator(this, function (_a) {
147
- bitcoinNode = bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
148
- neutered = bitcoinNode.derivePath(derivationPath).neutered();
149
- zpub = new ExtendedPublicKey(neutered.toBase58()).toZPub();
150
- return [2 /*return*/, zpub];
151
- });
152
- });
153
- };
154
- BitcoinSegwitProtocol.prototype.getPrivateKeyFromHexSecret = function (secret, derivationPath) {
155
- return __awaiter(this, void 0, void 0, function () {
156
- var bitcoinNode, privateKey;
157
- return __generator(this, function (_a) {
158
- if (!derivationPath) {
159
- return [2 /*return*/, bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network)];
160
- }
161
- bitcoinNode = bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
162
- privateKey = bitcoinNode.derivePath(derivationPath).privateKey;
163
- if (!privateKey) {
164
- throw new Error('No privatekey!');
165
- }
166
- return [2 /*return*/, privateKey.toString('hex')];
167
- });
168
- });
169
- };
170
- BitcoinSegwitProtocol.prototype.getExtendedPrivateKeyFromMnemonic = function (mnemonic, derivationPath, password) {
171
- return __awaiter(this, void 0, void 0, function () {
172
- var secret;
173
- return __generator(this, function (_a) {
174
- secret = (0, index_2.mnemonicToSeed)(mnemonic, password);
175
- return [2 /*return*/, this.getExtendedPrivateKeyFromHexSecret(secret, derivationPath)];
176
- });
177
- });
178
- };
179
- BitcoinSegwitProtocol.prototype.getExtendedPrivateKeyFromHexSecret = function (secret, derivationPath) {
180
- return __awaiter(this, void 0, void 0, function () {
181
- var bitcoinNode;
182
- return __generator(this, function (_a) {
183
- bitcoinNode = bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
184
- return [2 /*return*/, bitcoinNode.derivePath(derivationPath).toBase58()];
185
- });
186
- });
187
- };
188
- BitcoinSegwitProtocol.prototype.getAddressFromPublicKey = function (publicKey, cursor) {
189
- return __awaiter(this, void 0, void 0, function () {
190
- var address;
191
- return __generator(this, function (_a) {
192
- address = BitcoinSegwitAddress_1.BitcoinSegwitAddress.fromAddress(bitcoinJS.bip32.fromBase58(publicKey, this.options.network.extras.network).toBase58());
193
- return [2 /*return*/, {
194
- address: address.asString(),
195
- cursor: { hasNext: false }
196
- }];
197
- });
198
- });
199
- };
200
- BitcoinSegwitProtocol.prototype.getAddressesFromPublicKey = function (publicKey, cursor) {
201
- return __awaiter(this, void 0, void 0, function () {
202
- return __generator(this, function (_a) {
203
- switch (_a.label) {
204
- case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey, cursor)];
205
- case 1: return [2 /*return*/, [_a.sent()]];
206
- }
207
- });
208
- });
209
- };
210
- BitcoinSegwitProtocol.prototype.getAddressFromExtendedPublicKey = function (extendedPublicKey, visibilityDerivationIndex, addressDerivationIndex) {
211
- return __awaiter(this, void 0, void 0, function () {
212
- var xpub, keyPair, obj, addressRaw, address;
213
- return __generator(this, function (_a) {
214
- xpub = new ExtendedPublicKey(extendedPublicKey).toXpub();
215
- keyPair = bitcoinJS.bip32
216
- .fromBase58(xpub, this.options.network.extras.network)
217
- .derive(visibilityDerivationIndex)
218
- .derive(addressDerivationIndex);
219
- obj = bitcoinJS.payments.p2wpkh({ pubkey: keyPair.publicKey });
220
- addressRaw = obj.address;
221
- if (!addressRaw) {
222
- throw new Error('could not generate address');
223
- }
224
- address = BitcoinSegwitAddress_1.BitcoinSegwitAddress.fromAddress(addressRaw);
225
- return [2 /*return*/, {
226
- address: address.asString(),
227
- cursor: { hasNext: false }
228
- }];
229
- });
230
- });
231
- };
232
- BitcoinSegwitProtocol.prototype.getAddressesFromExtendedPublicKey = function (extendedPublicKey, visibilityDerivationIndex, addressCount, offset) {
233
- // broadcaster knows this (both broadcaster and signer)
234
- var node = bitcoinJS.bip32.fromBase58(new ExtendedPublicKey(extendedPublicKey).toXpub(), this.options.network.extras.network);
235
- var generatorArray = Array.from(new Array(addressCount), function (x, i) { return i + offset; });
236
- return Promise.all(generatorArray.map(function (x) {
237
- var keyPair = node.derive(visibilityDerivationIndex).derive(x);
238
- var addressRaw = bitcoinJS.payments.p2wpkh({ pubkey: keyPair.publicKey }).address;
239
- if (!addressRaw) {
240
- throw new Error('could not generate address');
241
- }
242
- var address = BitcoinSegwitAddress_1.BitcoinSegwitAddress.fromAddress(addressRaw);
243
- return {
244
- address: address.asString(),
245
- cursor: { hasNext: false }
246
- };
247
- }));
248
- };
249
- BitcoinSegwitProtocol.prototype.getTransactionDetails = function (unsignedTx) {
250
- var _a, _b;
251
- return __awaiter(this, void 0, void 0, function () {
252
- var transaction, decodedPSBT, feeCalculator, _i, _c, txIn, _d, _e, txOut, warnings, clonedPSBT, amount;
253
- return __generator(this, function (_f) {
254
- transaction = unsignedTx.transaction;
255
- decodedPSBT = bitcoinJS.Psbt.fromHex(transaction.psbt);
256
- feeCalculator = new bignumber_1.default(0);
257
- for (_i = 0, _c = decodedPSBT.data.inputs; _i < _c.length; _i++) {
258
- txIn = _c[_i];
259
- feeCalculator = feeCalculator.plus(new bignumber_1.default((_b = (_a = txIn.witnessUtxo) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0));
260
- }
261
- for (_d = 0, _e = decodedPSBT.txOutputs; _d < _e.length; _d++) {
262
- txOut = _e[_d];
263
- feeCalculator = feeCalculator.minus(new bignumber_1.default(txOut.value));
264
- }
265
- warnings = [];
266
- clonedPSBT = decodedPSBT.clone();
267
- eachRecursive(clonedPSBT); // All buffers to hex string
268
- amount = (function () {
269
- // If tx has only one output, this is the amount
270
- if (decodedPSBT.txOutputs.length === 1) {
271
- return new bignumber_1.default(decodedPSBT.txOutputs[0].value);
272
- }
273
- // If we can match one output to an exact amount that we add to the PSBT, this is our amount.
274
- {
275
- var unknownKeyVals = decodedPSBT.data.globalMap.unknownKeyVals;
276
- if (unknownKeyVals) {
277
- var amountArray = unknownKeyVals.filter(function (kv) { return kv.key.equals(Buffer.from('amount')); });
278
- if (amountArray.length > 0) {
279
- return new bignumber_1.default(amountArray[0].value.toString()); // Buffer to number
280
- }
281
- }
282
- }
283
- // If tx has an output and we added a derivation path in the PSBT (in the wallet, prepareTransaction), we know that it is a change address and we ignore it.
284
- var accumulated = new bignumber_1.default(0);
285
- var useAccumulated = false;
286
- decodedPSBT.data.outputs.forEach(function (outputKeyValues, index) {
287
- if (outputKeyValues.unknownKeyVals) {
288
- var derivationPaths = outputKeyValues.unknownKeyVals
289
- .filter(function (kv) { return kv.key.equals(Buffer.from('dp')); })
290
- .map(function (kv) { return kv.value.toString(); });
291
- if (derivationPaths.length > 0) {
292
- // If one of the outputs has the derivation in the custom key/value map, we can use this to determine the amount.
293
- useAccumulated = true;
294
- return;
295
- }
296
- }
297
- var output = decodedPSBT.txOutputs[index];
298
- accumulated = accumulated.plus(output.value);
299
- });
300
- if (useAccumulated) {
301
- return accumulated;
302
- }
303
- // If we cannot match anything above, we need to assume that the whole amount is being sent and the user has to check the outputs.
304
- return decodedPSBT.txOutputs
305
- .map(function (obj) { return new bignumber_1.default(obj.value); })
306
- .reduce(function (accumulator, currentValue) { return accumulator.plus(currentValue); });
307
- })();
308
- return [2 /*return*/, [
309
- {
310
- from: decodedPSBT.data.inputs.map(function (obj) {
311
- var _a, _b;
312
- return (_b = (_a = obj.bip32Derivation) === null || _a === void 0 ? void 0 : _a.map(function (el) {
313
- return bitcoinJS.payments.p2wpkh({
314
- pubkey: el.pubkey,
315
- network: bitcoinJS.networks.bitcoin
316
- }).address;
317
- }).join(' ')) !== null && _b !== void 0 ? _b : 'INVALID';
318
- }),
319
- to: decodedPSBT.txOutputs.map(function (obj) {
320
- return obj.address || "Script: ".concat(obj.script.toString('hex')) || 'unknown';
321
- }),
322
- amount: amount.toString(10),
323
- fee: feeCalculator.toString(10),
324
- protocolIdentifier: this.identifier,
325
- network: this.options.network,
326
- isInbound: false,
327
- transactionDetails: {
328
- // This is some unstructured data about the PSBT. This is shown in the UI as a JSON for advanced users.
329
- inputTx: eachRecursive(clonedPSBT.txInputs),
330
- outputTx: eachRecursive(clonedPSBT.txOutputs),
331
- inputData: clonedPSBT.data.inputs,
332
- outputData: clonedPSBT.data.outputs,
333
- PSBTVersion: clonedPSBT.version,
334
- PSBTLocktime: clonedPSBT.locktime,
335
- PSBTGlobalMap: clonedPSBT.data.globalMap,
336
- rawPSBT: unsignedTx.transaction
337
- },
338
- warnings: warnings
339
- }
340
- ]];
341
- });
342
- });
343
- };
344
- BitcoinSegwitProtocol.prototype.getTransactionDetailsFromSigned = function (signedTx) {
345
- return __awaiter(this, void 0, void 0, function () {
346
- return __generator(this, function (_a) {
347
- return [2 /*return*/, this.getTransactionDetails({ publicKey: '', transaction: { psbt: signedTx.transaction } })];
348
- });
349
- });
350
- };
351
- BitcoinSegwitProtocol.prototype.prepareTransactionFromExtendedPublicKey = function (extendedPublicKey, offset, recipients, values, fee, extras) {
352
- return __awaiter(this, void 0, void 0, function () {
353
- var wrappedValues, wrappedFee, transaction, utxos, totalRequiredBalance, valueAccumulator, getPathIndexes, _i, utxos_1, utxo, indexes, derivedAddress, i, lastUsedInternalAddress, changeValue, changeAddressIndex, derivedAddress, psbt, keyPair, replaceByFee, tx;
354
- var _this = this;
355
- return __generator(this, function (_a) {
356
- switch (_a.label) {
357
- case 0:
358
- if (!extras.masterFingerprint) {
359
- throw new Error('MasterFingerprint not set!');
360
- }
361
- wrappedValues = values.map(function (value) { return new bignumber_1.default(value); });
362
- wrappedFee = new bignumber_1.default(fee);
363
- transaction = {
364
- ins: [],
365
- outs: []
366
- };
367
- if (recipients.length !== wrappedValues.length) {
368
- throw new Error('recipients do not match values');
369
- }
370
- return [4 /*yield*/, index_1.default.get("".concat(this.options.network.extras.indexerApi, "/api/v2/utxo/").concat(extendedPublicKey, "?confirmed=true"), {
371
- responseType: 'json'
372
- })];
373
- case 1:
374
- utxos = (_a.sent()).data;
375
- if (utxos.length <= 0) {
376
- throw new Error('not enough balance'); // no transactions found on those addresses, probably won't find anything in the next ones
377
- }
378
- totalRequiredBalance = wrappedValues
379
- .reduce(function (accumulator, currentValue) { return accumulator.plus(currentValue); })
380
- .plus(wrappedFee);
381
- valueAccumulator = new bignumber_1.default(0);
382
- getPathIndexes = function (path) {
383
- var result = path
384
- .split('/')
385
- .slice(-2)
386
- .map(function (item) { return parseInt(item); })
387
- .filter(function (item) { return !isNaN(item); });
388
- if (result.length !== 2) {
389
- throw new Error('Unexpected path format');
390
- }
391
- return [result[0], result[1]];
392
- };
393
- _i = 0, utxos_1 = utxos;
394
- _a.label = 2;
395
- case 2:
396
- if (!(_i < utxos_1.length)) return [3 /*break*/, 5];
397
- utxo = utxos_1[_i];
398
- valueAccumulator = valueAccumulator.plus(utxo.value);
399
- indexes = getPathIndexes(utxo.path);
400
- return [4 /*yield*/, this.getAddressFromExtendedPublicKey(extendedPublicKey, indexes[0], indexes[1])];
401
- case 3:
402
- derivedAddress = (_a.sent()).address;
403
- if (derivedAddress === utxo.address) {
404
- transaction.ins.push({
405
- txId: utxo.txid,
406
- value: new bignumber_1.default(utxo.value).toString(10),
407
- vout: utxo.vout,
408
- address: utxo.address,
409
- derivationPath: utxo.path
410
- });
411
- }
412
- else {
413
- throw new Error('Invalid address returned from API');
414
- }
415
- if (valueAccumulator.isGreaterThanOrEqualTo(totalRequiredBalance)) {
416
- return [3 /*break*/, 5];
417
- }
418
- _a.label = 4;
419
- case 4:
420
- _i++;
421
- return [3 /*break*/, 2];
422
- case 5:
423
- if (valueAccumulator.isLessThan(totalRequiredBalance)) {
424
- throw new Error('not enough balance 2');
425
- }
426
- for (i = 0; i < recipients.length; i++) {
427
- transaction.outs.push({
428
- recipient: recipients[i],
429
- isChange: false,
430
- value: wrappedValues[i].toString(10)
431
- });
432
- valueAccumulator = valueAccumulator.minus(wrappedValues[i]);
433
- }
434
- lastUsedInternalAddress = Math.max.apply(Math, __spreadArray([-1], utxos
435
- .map(function (utxo) { return getPathIndexes(utxo.path); })
436
- .filter(function (indexes) { return indexes[0] === 1; })
437
- .map(function (indexes) { return indexes[1]; }), false));
438
- changeValue = valueAccumulator.minus(wrappedFee);
439
- if (!changeValue.isGreaterThan(new bignumber_1.default(DUST_AMOUNT))) return [3 /*break*/, 7];
440
- changeAddressIndex = lastUsedInternalAddress + 1;
441
- return [4 /*yield*/, this.getAddressFromExtendedPublicKey(extendedPublicKey, 1, changeAddressIndex)];
442
- case 6:
443
- derivedAddress = (_a.sent()).address;
444
- transaction.outs.push({
445
- recipient: derivedAddress,
446
- isChange: true,
447
- value: changeValue.toString(10),
448
- derivationPath: "1/".concat(changeAddressIndex)
449
- });
450
- _a.label = 7;
451
- case 7:
452
- psbt = new bitcoinJS.Psbt();
453
- // We add the total amount of the transaction to the global map. This can be used to show the info in the "from-to" component after the transaction was signed.
454
- psbt.addUnknownKeyValToGlobal({
455
- key: Buffer.from('amount'),
456
- value: Buffer.from(wrappedValues.reduce(function (accumulator, currentValue) { return accumulator.plus(currentValue); }).toString())
457
- });
458
- keyPair = bitcoinJS.bip32.fromBase58(new ExtendedPublicKey(extendedPublicKey).toXpub());
459
- replaceByFee = extras.replaceByFee ? true : false;
460
- transaction.ins.forEach(function (tx) {
461
- var indexes = getPathIndexes(tx.derivationPath);
462
- var childNode = keyPair.derivePath(indexes.join('/'));
463
- var p2wpkh = bitcoinJS.payments.p2wpkh({ pubkey: childNode.publicKey, network: _this.options.network.extras.network });
464
- var p2shOutput = p2wpkh.output;
465
- if (!p2shOutput) {
466
- throw new Error('no p2shOutput');
467
- }
468
- psbt.addInput({
469
- hash: tx.txId,
470
- index: tx.vout,
471
- sequence: replaceByFee ? 0xfffffffd : undefined,
472
- witnessUtxo: {
473
- script: p2shOutput,
474
- value: parseInt(tx.value)
475
- },
476
- bip32Derivation: [
477
- {
478
- masterFingerprint: Buffer.from(extras.masterFingerprint, 'hex'),
479
- pubkey: childNode.publicKey,
480
- path: tx.derivationPath
481
- }
482
- ]
483
- });
484
- });
485
- transaction.outs.forEach(function (out, index) {
486
- psbt.addOutput({ address: out.recipient, value: parseInt(out.value) });
487
- if (out.derivationPath) {
488
- // We add the derivation path of our change address to the key value map of the PSBT. This will allow us to later "filter" out this address when displaying the transaction info.
489
- psbt.addUnknownKeyValToOutput(index, {
490
- key: Buffer.from('dp'),
491
- value: Buffer.from(out.derivationPath, 'utf8')
492
- });
493
- }
494
- });
495
- tx = {
496
- psbt: psbt.toHex()
497
- };
498
- return [2 /*return*/, tx];
499
- }
500
- });
501
- });
502
- };
503
- BitcoinSegwitProtocol.prototype.signWithExtendedPrivateKey = function (extendedPrivateKey, transaction /* RawBitcoinSegwitTransaction */) {
504
- return __awaiter(this, void 0, void 0, function () {
505
- var rawBitcoinSegwitTx, bip32PK, decodedPSBT;
506
- return __generator(this, function (_a) {
507
- rawBitcoinSegwitTx = transaction;
508
- bip32PK = bitcoinJS.bip32.fromBase58(extendedPrivateKey);
509
- decodedPSBT = bitcoinJS.Psbt.fromHex(rawBitcoinSegwitTx.psbt);
510
- decodedPSBT.data.inputs.forEach(function (input, index) {
511
- var _a;
512
- (_a = input.bip32Derivation) === null || _a === void 0 ? void 0 : _a.forEach(function (deriv) {
513
- try {
514
- // This uses the same logic to find child key as the "findWalletByFingerprintDerivationPathAndProtocolIdentifier" method in the Vault
515
- var cutoffFrom = deriv.path.lastIndexOf("'") || deriv.path.lastIndexOf('h');
516
- var childPath = deriv.path.substr(cutoffFrom + 2);
517
- decodedPSBT.signInput(index, bip32PK.derivePath(childPath));
518
- console.log("Signed input ".concat(index, " with path ").concat(deriv.path));
519
- }
520
- catch (e) {
521
- console.log("Error signing input ".concat(index), e);
522
- }
523
- });
524
- });
525
- return [2 /*return*/, decodedPSBT.toHex()];
526
- });
527
- });
528
- };
529
- BitcoinSegwitProtocol.prototype.broadcastTransaction = function (rawTransaction) {
530
- return __awaiter(this, void 0, void 0, function () {
531
- var hexTransaction;
532
- return __generator(this, function (_a) {
533
- hexTransaction = bitcoinJS.Psbt.fromHex(rawTransaction).finalizeAllInputs().extractTransaction().toHex();
534
- return [2 /*return*/, _super.prototype.broadcastTransaction.call(this, hexTransaction)];
535
- });
536
- });
537
- };
538
- return BitcoinSegwitProtocol;
539
- }(BitcoinProtocol_1.BitcoinProtocol));
540
- exports.BitcoinSegwitProtocol = BitcoinSegwitProtocol;
541
- //# sourceMappingURL=BitcoinSegwitProtocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitcoinSegwitProtocol.js","sourceRoot":"","sources":["../../../src/v0/protocol/BitcoinSegwitProtocol.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { BitcoinProtocol } from './BitcoinProtocol';
2
- export declare class BitcoinTestnetProtocol extends BitcoinProtocol {
3
- name: string;
4
- standardDerivationPath: string;
5
- addressValidationPattern: string;
6
- constructor();
7
- }
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
22
- }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.BitcoinTestnetProtocol = void 0;
42
- var bitcoinJS = __importStar(require("@airgap/coinlib-core/dependencies/src/bitgo-utxo-lib-5d91049fd7a988382df81c8260e244ee56d57aac/src/index"));
43
- var ProtocolNetwork_1 = require("@airgap/coinlib-core/utils/ProtocolNetwork");
44
- var BitcoinProtocol_1 = require("./BitcoinProtocol");
45
- var BitcoinProtocolOptions_1 = require("./BitcoinProtocolOptions");
46
- var BitcoinTestnetProtocol = /** @class */ (function (_super) {
47
- __extends(BitcoinTestnetProtocol, _super);
48
- function BitcoinTestnetProtocol() {
49
- var _this = _super.call(this, new BitcoinProtocolOptions_1.BitcoinProtocolOptions(new BitcoinProtocolOptions_1.BitcoinProtocolNetwork('Testnet', ProtocolNetwork_1.NetworkType.TESTNET, '', new BitcoinProtocolOptions_1.BlockcypherBlockExplorer('https://live.blockcypher.com/btc-testnet'), new BitcoinProtocolOptions_1.BitcoinProtocolNetworkExtras('https://bitcoin.prod.gke.papers.tech', bitcoinJS.networks.testnet)), new BitcoinProtocolOptions_1.BitcoinProtocolConfig())) || this;
50
- _this.name = 'Bitcoin Testnet';
51
- _this.standardDerivationPath = "m/44'/1'/0'";
52
- _this.addressValidationPattern = '^..[13][a-km-zA-HJ-NP-Z1-9]{25,34}$';
53
- return _this;
54
- }
55
- return BitcoinTestnetProtocol;
56
- }(BitcoinProtocol_1.BitcoinProtocol));
57
- exports.BitcoinTestnetProtocol = BitcoinTestnetProtocol;
58
- //# sourceMappingURL=BitcoinTestnetProtocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitcoinTestnetProtocol.js","sourceRoot":"","sources":["../../../src/v0/protocol/BitcoinTestnetProtocol.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iJAAoI;AACpI,8EAAwE;AAExE,qDAAmD;AACnD,mEAMiC;AAEjC;IAA4C,0CAAe;IAMzD;QAAA,YACE,kBACE,IAAI,+CAAsB,CACxB,IAAI,+CAAsB,CACxB,SAAS,EACT,6BAAW,CAAC,OAAO,EACnB,EAAE,EACF,IAAI,iDAAwB,CAAC,0CAA0C,CAAC,EACxE,IAAI,qDAA4B,CAAC,sCAAsC,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CACrG,EACD,IAAI,8CAAqB,EAAE,CAC5B,CACF,SACF;QAlBM,UAAI,GAAG,iBAAiB,CAAA;QAExB,4BAAsB,GAAG,aAAa,CAAA;QACtC,8BAAwB,GAAG,qCAAqC,CAAA;;IAevE,CAAC;IACH,6BAAC;AAAD,CAAC,AApBD,CAA4C,iCAAe,GAoB1D;AApBY,wDAAsB"}