@airgap/bitcoin 0.13.8-beta.10 → 0.13.8-beta.12

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 (36) hide show
  1. package/airgap-coinlib-bitcoin.min.js +8 -27
  2. package/package.json +4 -4
  3. package/v0/protocol/BitcoinProtocol.d.ts +0 -2
  4. package/v0/protocol/BitcoinProtocol.js +0 -16
  5. package/v0/protocol/BitcoinProtocol.js.map +1 -1
  6. package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin-segwit.json +8 -11
  7. package/v1/index.d.ts +3 -2
  8. package/v1/index.js +5 -3
  9. package/v1/index.js.map +1 -1
  10. package/v1/module/BitcoinModule.d.ts +7 -15
  11. package/v1/module/BitcoinModule.js +10 -36
  12. package/v1/module/BitcoinModule.js.map +1 -1
  13. package/v1/module/BitcoinSegwitModule.d.ts +8 -0
  14. package/v1/module/BitcoinSegwitModule.js +87 -0
  15. package/v1/module/BitcoinSegwitModule.js.map +1 -0
  16. package/v1/protocol/BitcoinProtocol.d.ts +0 -1
  17. package/v1/protocol/BitcoinProtocol.js +0 -13
  18. package/v1/protocol/BitcoinProtocol.js.map +1 -1
  19. package/v1/protocol/BitcoinSegwitProtocol.d.ts +0 -1
  20. package/v1/protocol/BitcoinSegwitProtocol.js +0 -17
  21. package/v1/protocol/BitcoinSegwitProtocol.js.map +1 -1
  22. package/v1/serializer/v3/schemas/converter/transaction-converter.js +4 -25
  23. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
  24. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.d.ts +1 -1
  25. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.d.ts +1 -1
  26. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-segwit.json +15 -8
  27. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin.json +24 -17
  28. package/v1/serializer/v3/validators/{transaction-validator.d.ts → transaction-validators.d.ts} +4 -1
  29. package/v1/serializer/v3/validators/{transaction-validator.js → transaction-validators.js} +11 -2
  30. package/v1/serializer/v3/validators/transaction-validators.js.map +1 -0
  31. package/v1/utils/key.js +1 -2
  32. package/v1/utils/key.js.map +1 -1
  33. package/v1/serializer/v3/serializer-companion.d.ts +0 -14
  34. package/v1/serializer/v3/serializer-companion.js +0 -197
  35. package/v1/serializer/v3/serializer-companion.js.map +0 -1
  36. package/v1/serializer/v3/validators/transaction-validator.js.map +0 -1
@@ -1,197 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.BitcoinV3SerializerCompanion = void 0;
40
- var coinlib_core_1 = require("@airgap/coinlib-core");
41
- var validate_1 = require("@airgap/coinlib-core/dependencies/src/validate.js-0.13.1/validate");
42
- var errors_1 = require("@airgap/coinlib-core/errors");
43
- var serializer_1 = require("@airgap/serializer");
44
- var transaction_converter_1 = require("./schemas/converter/transaction-converter");
45
- var transaction_validator_1 = require("./validators/transaction-validator");
46
- var validators_1 = require("./validators/validators");
47
- var bitcoinTransactionSignRequest = require('./schemas/generated/transaction-sign-request-bitcoin.json');
48
- var bitcoinTransactionSignResponse = require('./schemas/generated/transaction-sign-response-bitcoin.json');
49
- var bitcoinSegwitTransactionSignRequest = require('./schemas/generated/transaction-sign-request-bitcoin-segwit.json');
50
- var bitcoinSegwitTransactionSignResponse = require('./schemas/generated/transaction-sign-response-bitcoin-segwit.json');
51
- var BitcoinV3SerializerCompanion = /** @class */ (function () {
52
- function BitcoinV3SerializerCompanion() {
53
- this.schemas = [
54
- {
55
- type: serializer_1.IACMessageType.TransactionSignRequest,
56
- schema: { schema: bitcoinTransactionSignRequest },
57
- protocolIdentifier: coinlib_core_1.MainProtocolSymbols.BTC
58
- },
59
- {
60
- type: serializer_1.IACMessageType.TransactionSignResponse,
61
- schema: { schema: bitcoinTransactionSignResponse },
62
- protocolIdentifier: coinlib_core_1.MainProtocolSymbols.BTC
63
- },
64
- {
65
- type: serializer_1.IACMessageType.TransactionSignRequest,
66
- schema: { schema: bitcoinSegwitTransactionSignRequest },
67
- protocolIdentifier: coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT
68
- },
69
- {
70
- type: serializer_1.IACMessageType.TransactionSignResponse,
71
- schema: { schema: bitcoinSegwitTransactionSignResponse },
72
- protocolIdentifier: coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT
73
- }
74
- ];
75
- this.bitcoinTransactionValidator = new transaction_validator_1.BitcoinTransactionValidator();
76
- Object.keys(validators_1.bitcoinValidators).forEach(function (key) {
77
- validate_1.validators[key] = validators_1.bitcoinValidators[key];
78
- });
79
- }
80
- BitcoinV3SerializerCompanion.prototype.toTransactionSignRequest = function (identifier, unsignedTransaction, publicKey, callbackUrl) {
81
- return __awaiter(this, void 0, void 0, function () {
82
- return __generator(this, function (_a) {
83
- switch (identifier) {
84
- case coinlib_core_1.MainProtocolSymbols.BTC:
85
- return [2 /*return*/, (0, transaction_converter_1.bitcoinUnsignedTransactionToRequest)(unsignedTransaction, publicKey, callbackUrl)];
86
- case coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT:
87
- return [2 /*return*/, (0, transaction_converter_1.bitcoinSegwitUnsignedTransactionToRequest)(unsignedTransaction, publicKey, callbackUrl)];
88
- default:
89
- throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Protocol ".concat(identifier, " not supported"));
90
- }
91
- return [2 /*return*/];
92
- });
93
- });
94
- };
95
- BitcoinV3SerializerCompanion.prototype.fromTransactionSignRequest = function (identifier, transactionSignRequest) {
96
- return __awaiter(this, void 0, void 0, function () {
97
- return __generator(this, function (_a) {
98
- switch (identifier) {
99
- case coinlib_core_1.MainProtocolSymbols.BTC:
100
- return [2 /*return*/, (0, transaction_converter_1.bitcoinTransactionSignRequestToUnsigned)(transactionSignRequest)];
101
- case coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT:
102
- return [2 /*return*/, (0, transaction_converter_1.bitcoinSegwitTransactionSignRequestToUnsigned)(transactionSignRequest)];
103
- default:
104
- throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Protocol ".concat(identifier, " not supported"));
105
- }
106
- return [2 /*return*/];
107
- });
108
- });
109
- };
110
- BitcoinV3SerializerCompanion.prototype.validateTransactionSignRequest = function (identifier, transactionSignRequest) {
111
- return __awaiter(this, void 0, void 0, function () {
112
- var _a, _b;
113
- return __generator(this, function (_c) {
114
- switch (_c.label) {
115
- case 0:
116
- _a = identifier;
117
- switch (_a) {
118
- case coinlib_core_1.MainProtocolSymbols.BTC: return [3 /*break*/, 1];
119
- case coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT: return [3 /*break*/, 4];
120
- }
121
- return [3 /*break*/, 5];
122
- case 1:
123
- _c.trys.push([1, 3, , 4]);
124
- return [4 /*yield*/, this.bitcoinTransactionValidator.validateUnsignedTransaction(transactionSignRequest)];
125
- case 2:
126
- _c.sent();
127
- return [2 /*return*/, true];
128
- case 3:
129
- _b = _c.sent();
130
- return [2 /*return*/, false];
131
- case 4: return [2 /*return*/, true];
132
- case 5: throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Protocol ".concat(identifier, " not supported"));
133
- }
134
- });
135
- });
136
- };
137
- BitcoinV3SerializerCompanion.prototype.toTransactionSignResponse = function (identifier, signedTransaction, accountIdentifier) {
138
- return __awaiter(this, void 0, void 0, function () {
139
- return __generator(this, function (_a) {
140
- switch (identifier) {
141
- case coinlib_core_1.MainProtocolSymbols.BTC:
142
- return [2 /*return*/, (0, transaction_converter_1.bitcoinSignedTransactionToResponse)(signedTransaction, accountIdentifier)];
143
- case coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT:
144
- return [2 /*return*/, (0, transaction_converter_1.bitcoinSegwitSignedTransactionToResponse)(signedTransaction, accountIdentifier)];
145
- default:
146
- throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Protocol ".concat(identifier, " not supported"));
147
- }
148
- return [2 /*return*/];
149
- });
150
- });
151
- };
152
- BitcoinV3SerializerCompanion.prototype.fromTransactionSignResponse = function (identifier, transactionSignResponse) {
153
- return __awaiter(this, void 0, void 0, function () {
154
- return __generator(this, function (_a) {
155
- switch (identifier) {
156
- case coinlib_core_1.MainProtocolSymbols.BTC:
157
- return [2 /*return*/, (0, transaction_converter_1.bitcoinTransactionSignResponseToSigned)(transactionSignResponse)];
158
- case coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT:
159
- return [2 /*return*/, (0, transaction_converter_1.bitcoinSegwitTransactionSignResponseToSigned)(transactionSignResponse)];
160
- default:
161
- throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Protocol ".concat(identifier, " not supported"));
162
- }
163
- return [2 /*return*/];
164
- });
165
- });
166
- };
167
- BitcoinV3SerializerCompanion.prototype.validateTransactionSignResponse = function (identifier, transactionSignResponse) {
168
- return __awaiter(this, void 0, void 0, function () {
169
- var _a, _b;
170
- return __generator(this, function (_c) {
171
- switch (_c.label) {
172
- case 0:
173
- _a = identifier;
174
- switch (_a) {
175
- case coinlib_core_1.MainProtocolSymbols.BTC: return [3 /*break*/, 1];
176
- case coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT: return [3 /*break*/, 4];
177
- }
178
- return [3 /*break*/, 5];
179
- case 1:
180
- _c.trys.push([1, 3, , 4]);
181
- return [4 /*yield*/, this.bitcoinTransactionValidator.validateSignedTransaction(transactionSignResponse)];
182
- case 2:
183
- _c.sent();
184
- return [2 /*return*/, true];
185
- case 3:
186
- _b = _c.sent();
187
- return [2 /*return*/, false];
188
- case 4: return [2 /*return*/, true];
189
- case 5: throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Protocol ".concat(identifier, " not supported"));
190
- }
191
- });
192
- });
193
- };
194
- return BitcoinV3SerializerCompanion;
195
- }());
196
- exports.BitcoinV3SerializerCompanion = BitcoinV3SerializerCompanion;
197
- //# sourceMappingURL=serializer-companion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer-companion.js","sourceRoot":"","sources":["../../../../src/v1/serializer/v3/serializer-companion.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction-validator.js","sourceRoot":"","sources":["../../../../../src/v1/serializer/v3/validators/transaction-validator.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,8FAAyF;AACzF,iDAA6E;AAK7E,IAAM,8BAA8B,GAAG;IACrC,GAAG,EAAE;QACH,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;QAC/B,mBAAmB,EAAE,IAAI;KAC1B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;QAC/B,oBAAoB,EAAE,IAAI;KAC3B;CACF,CAAA;AAED,IAAM,4BAA4B,GAAG;IACnC,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;QAC/B,uBAAuB,EAAE,IAAI;KAC9B;IACD,MAAM,EAAE;QACN,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;KAChC;IACD,GAAG,EAAE;QACH,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;KAChC;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;KAChC;IACD,WAAW,EAAE;QACX,sBAAsB,EAAE,IAAI;QAC5B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;KAChC;CACF,CAAA;AACD,IAAM,OAAO,GAAG,cAAM,OAAA,SAAS,EAAT,CAAS,CAAA;AAC/B,IAAM,KAAK,GAAG,UAAC,MAAM,IAAK,OAAA,MAAM,EAAN,CAAM,CAAA;AAEhC;IAAA;IAUA,CAAC;IATQ,iEAA2B,GAAlC,UAAmC,OAAsC;QACvE,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACvC,IAAA,+BAAkB,EAAC,EAAE,CAAC,CAAA;QAEtB,OAAO,IAAA,gBAAK,EAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAChF,CAAC;IACM,+DAAyB,GAAhC,UAAiC,QAAwC;QACvE,OAAO,IAAA,gBAAK,EAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3E,CAAC;IACH,kCAAC;AAAD,CAAC,AAVD,IAUC;AAVY,kEAA2B"}