@airgap/bitcoin 0.13.11-beta.1 → 0.13.11-beta.3
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/index.d.ts +1 -0
- package/index.js +18 -0
- package/index.js.map +1 -0
- package/package.json +1 -5
- package/v0/index.d.ts +14 -0
- package/v0/index.js +34 -0
- package/v0/index.js.map +1 -0
- package/v0/protocol/BitcoinAddress.d.ts +9 -0
- package/v0/protocol/BitcoinAddress.js +23 -0
- package/v0/protocol/BitcoinAddress.js.map +1 -0
- package/v0/protocol/BitcoinCryptoClient.d.ts +11 -0
- package/v0/protocol/BitcoinCryptoClient.js +91 -0
- package/v0/protocol/BitcoinCryptoClient.js.map +1 -0
- package/v0/protocol/BitcoinProtocol.d.ts +167 -0
- package/v0/protocol/BitcoinProtocol.js +1063 -0
- package/v0/protocol/BitcoinProtocol.js.map +1 -0
- package/v0/protocol/BitcoinProtocolOptions.d.ts +26 -0
- package/v0/protocol/BitcoinProtocolOptions.js +148 -0
- package/v0/protocol/BitcoinProtocolOptions.js.map +1 -0
- package/v0/protocol/BitcoinSegwitAddress.d.ts +7 -0
- package/v0/protocol/BitcoinSegwitAddress.js +41 -0
- package/v0/protocol/BitcoinSegwitAddress.js.map +1 -0
- package/v0/protocol/BitcoinSegwitProtocol.d.ts +28 -0
- package/v0/protocol/BitcoinSegwitProtocol.js +541 -0
- package/v0/protocol/BitcoinSegwitProtocol.js.map +1 -0
- package/v0/protocol/BitcoinTestnetProtocol.d.ts +7 -0
- package/v0/protocol/BitcoinTestnetProtocol.js +58 -0
- package/v0/protocol/BitcoinTestnetProtocol.js.map +1 -0
- package/v0/protocol/BitcoinTypes.d.ts +21 -0
- package/v0/protocol/BitcoinTypes.js +3 -0
- package/v0/protocol/BitcoinTypes.js.map +1 -0
- package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin-segwit.json +0 -0
- package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin.json +73 -0
- package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin-segwit.json +0 -0
- package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin.json +37 -0
- package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin-segwit.json +29 -0
- package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin.json +73 -0
- package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin-segwit.json +19 -0
- package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin.json +37 -0
- package/v0/serializer/validators/transaction-validator.d.ts +15 -0
- package/v0/serializer/validators/transaction-validator.js +81 -0
- package/v0/serializer/validators/transaction-validator.js.map +1 -0
- package/v0/serializer/validators/validators.d.ts +1 -0
- package/v0/serializer/validators/validators.js +151 -0
- package/v0/serializer/validators/validators.js.map +1 -0
- package/v0/types/signed-transaction-bitcoin-segwit.d.ts +5 -0
- package/v0/types/signed-transaction-bitcoin-segwit.js +3 -0
- package/v0/types/signed-transaction-bitcoin-segwit.js.map +1 -0
- package/v0/types/signed-transaction-bitcoin.d.ts +9 -0
- package/v0/types/signed-transaction-bitcoin.js +3 -0
- package/v0/types/signed-transaction-bitcoin.js.map +1 -0
- package/v0/types/transaction-bitcoin.d.ts +20 -0
- package/v0/types/transaction-bitcoin.js +3 -0
- package/v0/types/transaction-bitcoin.js.map +1 -0
- package/v0/types/unsigned-transaction-bitcoin-segwit.d.ts +7 -0
- package/v0/types/unsigned-transaction-bitcoin-segwit.js +3 -0
- package/v0/types/unsigned-transaction-bitcoin-segwit.js.map +1 -0
- package/v0/types/unsigned-transaction-bitcoin.d.ts +22 -0
- package/v0/types/unsigned-transaction-bitcoin.js +3 -0
- package/v0/types/unsigned-transaction-bitcoin.js.map +1 -0
- package/v1/block-explorer/BlockCypherBlockExplorer.d.ts +9 -0
- package/v1/block-explorer/BlockCypherBlockExplorer.js +74 -0
- package/v1/block-explorer/BlockCypherBlockExplorer.js.map +1 -0
- package/v1/data/BitcoinAddress.d.ts +7 -0
- package/v1/data/BitcoinAddress.js +20 -0
- package/v1/data/BitcoinAddress.js.map +1 -0
- package/v1/data/BitcoinSegwitAddress.d.ts +8 -0
- package/v1/data/BitcoinSegwitAddress.js +25 -0
- package/v1/data/BitcoinSegwitAddress.js.map +1 -0
- package/v1/index.d.ts +20 -0
- package/v1/index.js +24 -0
- package/v1/index.js.map +1 -0
- package/v1/module/BitcoinModule.d.ts +16 -0
- package/v1/module/BitcoinModule.js +112 -0
- package/v1/module/BitcoinModule.js.map +1 -0
- package/v1/module.d.ts +3 -0
- package/v1/module.js +24 -0
- package/v1/module.js.map +1 -0
- package/v1/protocol/BitcoinCryptoClient.d.ts +12 -0
- package/v1/protocol/BitcoinCryptoClient.js +96 -0
- package/v1/protocol/BitcoinCryptoClient.js.map +1 -0
- package/v1/protocol/BitcoinProtocol.d.ts +72 -0
- package/v1/protocol/BitcoinProtocol.js +1193 -0
- package/v1/protocol/BitcoinProtocol.js.map +1 -0
- package/v1/protocol/BitcoinSegwitProtocol.d.ts +52 -0
- package/v1/protocol/BitcoinSegwitProtocol.js +720 -0
- package/v1/protocol/BitcoinSegwitProtocol.js.map +1 -0
- package/v1/protocol/BitcoinTestnetProtocol.d.ts +12 -0
- package/v1/protocol/BitcoinTestnetProtocol.js +73 -0
- package/v1/protocol/BitcoinTestnetProtocol.js.map +1 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +13 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.js +75 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.d.ts +4 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.d.ts +4 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.d.ts +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.d.ts +7 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js.map +1 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-segwit.json +29 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin.json +79 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-segwit.json +19 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin.json +37 -0
- package/v1/serializer/v3/serializer-companion.d.ts +14 -0
- package/v1/serializer/v3/serializer-companion.js +197 -0
- package/v1/serializer/v3/serializer-companion.js.map +1 -0
- package/v1/serializer/v3/validators/transaction-validator.d.ts +7 -0
- package/v1/serializer/v3/validators/transaction-validator.js +56 -0
- package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
- package/v1/serializer/v3/validators/validators.d.ts +7 -0
- package/v1/serializer/v3/validators/validators.js +238 -0
- package/v1/serializer/v3/validators/validators.js.map +1 -0
- package/v1/types/bitcoinjs.d.ts +14 -0
- package/v1/types/bitcoinjs.js +3 -0
- package/v1/types/bitcoinjs.js.map +1 -0
- package/v1/types/crypto.d.ts +2 -0
- package/v1/types/crypto.js +3 -0
- package/v1/types/crypto.js.map +1 -0
- package/v1/types/indexer.d.ts +81 -0
- package/v1/types/indexer.js +3 -0
- package/v1/types/indexer.js.map +1 -0
- package/v1/types/key.d.ts +6 -0
- package/v1/types/key.js +3 -0
- package/v1/types/key.js.map +1 -0
- package/v1/types/protocol.d.ts +17 -0
- package/v1/types/protocol.js +3 -0
- package/v1/types/protocol.js.map +1 -0
- package/v1/types/transaction.d.ts +39 -0
- package/v1/types/transaction.js +3 -0
- package/v1/types/transaction.js.map +1 -0
- package/v1/utils/common.d.ts +2 -0
- package/v1/utils/common.js +28 -0
- package/v1/utils/common.js.map +1 -0
- package/v1/utils/key.d.ts +34 -0
- package/v1/utils/key.js +190 -0
- package/v1/utils/key.js.map +1 -0
- package/v1/utils/network.d.ts +2 -0
- package/v1/utils/network.js +22 -0
- package/v1/utils/network.js.map +1 -0
- package/v1/utils/signature.d.ts +2 -0
- package/v1/utils/signature.js +34 -0
- package/v1/utils/signature.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/v1/types/indexer.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare type BitcoinExtendedSecretKeyEncoding = 'xprv';
|
|
2
|
+
export declare type BitcoinTestnetExtendedSecretKeyEncoding = 'tprv';
|
|
3
|
+
export declare type BitcoinSegwitExtendedSecretKeyEncoding = BitcoinExtendedSecretKeyEncoding | 'yprv' | 'zprv';
|
|
4
|
+
export declare type BitcoinExtendedPublicKeyEncoding = 'xpub';
|
|
5
|
+
export declare type BitcoinTestnetExtendedPublicKeyEncoding = 'tpub';
|
|
6
|
+
export declare type BitcoinSegwitExtendedPublicKeyEncoding = BitcoinExtendedPublicKeyEncoding | 'ypub' | 'zpub';
|
package/v1/types/key.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/v1/types/key.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ProtocolNetwork } from '@airgap/module-kit';
|
|
2
|
+
export declare type BitcoinUnits = 'BTC' | 'mBTC' | 'Satoshi';
|
|
3
|
+
interface BitcoinBaseProtocolNetwork extends ProtocolNetwork {
|
|
4
|
+
indexerApi: string;
|
|
5
|
+
}
|
|
6
|
+
export interface BitcoinStandardProtocolNetwork extends BitcoinBaseProtocolNetwork {
|
|
7
|
+
type: 'mainnet' | 'testnet';
|
|
8
|
+
}
|
|
9
|
+
export interface BitcoinCustomProtocolNetwork extends BitcoinBaseProtocolNetwork {
|
|
10
|
+
type: 'custom';
|
|
11
|
+
bitcoinjsNetworkName: string;
|
|
12
|
+
}
|
|
13
|
+
export declare type BitcoinProtocolNetwork = BitcoinStandardProtocolNetwork | BitcoinCustomProtocolNetwork;
|
|
14
|
+
export interface BitcoinProtocolOptions {
|
|
15
|
+
network: BitcoinProtocolNetwork;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/v1/types/protocol.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { HexString, SignedTransaction, TransactionConfiguration, TransactionCursor, UnsignedTransaction } from '@airgap/module-kit';
|
|
2
|
+
import { BitcoinUnits } from './protocol';
|
|
3
|
+
export interface BitcoinInTransaction {
|
|
4
|
+
txId: string;
|
|
5
|
+
value: string;
|
|
6
|
+
vout: number;
|
|
7
|
+
address: string;
|
|
8
|
+
derivationPath?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface BitcoinOutTransaction {
|
|
11
|
+
recipient: string;
|
|
12
|
+
isChange: boolean;
|
|
13
|
+
value: string;
|
|
14
|
+
derivationPath?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface BitcoinUnsignedTransaction extends UnsignedTransaction {
|
|
17
|
+
ins: BitcoinInTransaction[];
|
|
18
|
+
outs: BitcoinOutTransaction[];
|
|
19
|
+
}
|
|
20
|
+
export interface BitcoinSignedTransaction extends SignedTransaction {
|
|
21
|
+
from: string[];
|
|
22
|
+
to: string[];
|
|
23
|
+
amount: string;
|
|
24
|
+
fee: string;
|
|
25
|
+
transaction: string;
|
|
26
|
+
}
|
|
27
|
+
export interface BitcoinSegwitUnsignedTransaction extends UnsignedTransaction {
|
|
28
|
+
psbt: string;
|
|
29
|
+
}
|
|
30
|
+
export interface BitcoinSegwitSignedTransaction extends SignedTransaction {
|
|
31
|
+
psbt: string;
|
|
32
|
+
}
|
|
33
|
+
export interface BitcoinTransactionCursor extends TransactionCursor {
|
|
34
|
+
page?: number;
|
|
35
|
+
}
|
|
36
|
+
export declare type SegwitTransactionConfiguration<_Units extends BitcoinUnits> = TransactionConfiguration<_Units> & {
|
|
37
|
+
masterFingerprint: HexString;
|
|
38
|
+
replaceByFee?: boolean;
|
|
39
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/v1/types/transaction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eachRecursive = exports.containsSome = void 0;
|
|
4
|
+
function containsSome(needles, haystack) {
|
|
5
|
+
for (var _i = 0, needles_1 = needles; _i < needles_1.length; _i++) {
|
|
6
|
+
var needle = needles_1[_i];
|
|
7
|
+
if (haystack.indexOf(needle) > -1) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
exports.containsSome = containsSome;
|
|
14
|
+
// This function handles arrays and objects
|
|
15
|
+
function eachRecursive(obj) {
|
|
16
|
+
// tslint:disable-next-line: forin
|
|
17
|
+
for (var k in obj) {
|
|
18
|
+
if (Buffer.isBuffer(obj[k])) {
|
|
19
|
+
obj[k] = obj[k].toString('hex');
|
|
20
|
+
}
|
|
21
|
+
if (typeof obj[k] === 'object' && obj[k] !== null) {
|
|
22
|
+
obj[k] = eachRecursive(obj[k]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return obj;
|
|
26
|
+
}
|
|
27
|
+
exports.eachRecursive = eachRecursive;
|
|
28
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/v1/utils/common.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAI,OAAY,EAAE,QAAa;IACzD,KAAqB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;QAAzB,IAAM,MAAM,gBAAA;QACf,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACjC,OAAO,IAAI,CAAA;SACZ;KACF;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AARD,oCAQC;AAED,2CAA2C;AAC3C,SAAgB,aAAa,CAAC,GAAsB;IAClD,kCAAkC;IAClC,KAAK,IAAM,CAAC,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YACjD,GAAG,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;SAC/B;KACF;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAZD,sCAYC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ExtendedPublicKey, ExtendedSecretKey, PublicKey, SecretKey } from '@airgap/module-kit';
|
|
3
|
+
import { ExcludeTyped, ExtractTyped } from '@airgap/module-kit/types/meta/utility-types';
|
|
4
|
+
import { BitcoinExtendedPublicKeyEncoding, BitcoinExtendedSecretKeyEncoding, BitcoinSegwitExtendedPublicKeyEncoding, BitcoinSegwitExtendedSecretKeyEncoding, BitcoinTestnetExtendedPublicKeyEncoding, BitcoinTestnetExtendedSecretKeyEncoding } from '../types/key';
|
|
5
|
+
declare const EXT_SK_PREFIX: Record<BitcoinExtendedSecretKeyEncoding, string>;
|
|
6
|
+
declare const EXT_SK_TESTNET_PREFIX: Record<BitcoinTestnetExtendedSecretKeyEncoding, string>;
|
|
7
|
+
declare const EXT_SK_SEGWIT_PREFIX: Record<BitcoinSegwitExtendedSecretKeyEncoding, string>;
|
|
8
|
+
declare type ExtendedSecretKeyEncoding = keyof typeof EXT_SK_PREFIX | keyof typeof EXT_SK_TESTNET_PREFIX | keyof typeof EXT_SK_SEGWIT_PREFIX;
|
|
9
|
+
declare const EXT_PK_PREFIX: Record<BitcoinExtendedPublicKeyEncoding, string>;
|
|
10
|
+
declare const EXT_PK_TESTNET_PREFIX: Record<BitcoinTestnetExtendedPublicKeyEncoding, string>;
|
|
11
|
+
declare const EXT_PK_SEGWIT_PREFIX: Record<BitcoinSegwitExtendedPublicKeyEncoding, string>;
|
|
12
|
+
declare type ExtendedPublicKeyEncoding = keyof typeof EXT_PK_PREFIX | keyof typeof EXT_PK_TESTNET_PREFIX | keyof typeof EXT_PK_SEGWIT_PREFIX;
|
|
13
|
+
declare type HashFunction = (payload: Buffer) => Buffer;
|
|
14
|
+
export declare function convertSecretKey(secretKey: SecretKey, targetFormat: SecretKey['format']): SecretKey;
|
|
15
|
+
declare type ConvertExtendedSecretKeyTarget = {
|
|
16
|
+
format: ExcludeTyped<ExtendedSecretKey['format'], 'encoded'>;
|
|
17
|
+
hashFunction?: HashFunction;
|
|
18
|
+
} | {
|
|
19
|
+
format: ExtractTyped<ExtendedSecretKey['format'], 'encoded'>;
|
|
20
|
+
type: ExtendedSecretKeyEncoding;
|
|
21
|
+
hashFunction?: HashFunction;
|
|
22
|
+
};
|
|
23
|
+
export declare function convertExtendedSecretKey(extendedSecretKey: ExtendedSecretKey, target: ConvertExtendedSecretKeyTarget): ExtendedSecretKey;
|
|
24
|
+
export declare function convertPublicKey(publicKey: PublicKey, targetFormat: PublicKey['format']): PublicKey;
|
|
25
|
+
declare type ConvertExtendedPublicKeyTarget = {
|
|
26
|
+
format: ExcludeTyped<ExtendedPublicKey['format'], 'encoded'>;
|
|
27
|
+
hashFunction?: HashFunction;
|
|
28
|
+
} | {
|
|
29
|
+
format: ExtractTyped<ExtendedPublicKey['format'], 'encoded'>;
|
|
30
|
+
type: ExtendedPublicKeyEncoding;
|
|
31
|
+
hashFunction?: HashFunction;
|
|
32
|
+
};
|
|
33
|
+
export declare function convertExtendedPublicKey(extendedPublicKey: ExtendedPublicKey, target: ConvertExtendedPublicKeyTarget): ExtendedPublicKey;
|
|
34
|
+
export {};
|
package/v1/utils/key.js
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.convertExtendedPublicKey = exports.convertPublicKey = exports.convertExtendedSecretKey = exports.convertSecretKey = void 0;
|
|
7
|
+
var coinlib_core_1 = require("@airgap/coinlib-core");
|
|
8
|
+
var bs58check_2_1_2_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2"));
|
|
9
|
+
var base_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2/base"));
|
|
10
|
+
var errors_1 = require("@airgap/coinlib-core/errors");
|
|
11
|
+
var module_kit_1 = require("@airgap/module-kit");
|
|
12
|
+
var EXT_SK_PREFIX = {
|
|
13
|
+
xprv: '0488ade4'
|
|
14
|
+
};
|
|
15
|
+
var EXT_SK_TESTNET_PREFIX = {
|
|
16
|
+
tprv: '04358394'
|
|
17
|
+
};
|
|
18
|
+
var EXT_SK_SEGWIT_PREFIX = {
|
|
19
|
+
xprv: '0488ade4',
|
|
20
|
+
yprv: '049d7878',
|
|
21
|
+
zprv: '04b2430c'
|
|
22
|
+
};
|
|
23
|
+
var extendedSecretKeyPrefixes = [EXT_SK_PREFIX, EXT_SK_TESTNET_PREFIX, EXT_SK_SEGWIT_PREFIX];
|
|
24
|
+
var extendedSecretKeyEncodings = createEncodings(extendedSecretKeyPrefixes);
|
|
25
|
+
var EXT_PK_PREFIX = {
|
|
26
|
+
xpub: '0488b21e'
|
|
27
|
+
};
|
|
28
|
+
var EXT_PK_TESTNET_PREFIX = {
|
|
29
|
+
tpub: '043587cf'
|
|
30
|
+
};
|
|
31
|
+
var EXT_PK_SEGWIT_PREFIX = {
|
|
32
|
+
xpub: '0488b21e',
|
|
33
|
+
ypub: '049d7cb2',
|
|
34
|
+
zpub: '04b24746'
|
|
35
|
+
};
|
|
36
|
+
var extendedPublicKeyPrefixes = [EXT_PK_PREFIX, EXT_PK_TESTNET_PREFIX, EXT_PK_SEGWIT_PREFIX];
|
|
37
|
+
var extendedPublicKeyEncodings = createEncodings(extendedPublicKeyPrefixes);
|
|
38
|
+
function convertSecretKey(secretKey, targetFormat) {
|
|
39
|
+
if (secretKey.format === targetFormat) {
|
|
40
|
+
return secretKey;
|
|
41
|
+
}
|
|
42
|
+
switch (secretKey.format) {
|
|
43
|
+
case 'encoded':
|
|
44
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Unsupported secret key format ".concat(secretKey.format, "."));
|
|
45
|
+
case 'hex':
|
|
46
|
+
return (0, module_kit_1.newSecretKey)(convertHexSecretKey(secretKey.value, targetFormat));
|
|
47
|
+
default:
|
|
48
|
+
(0, coinlib_core_1.assertNever)(secretKey.format);
|
|
49
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unuspported secret key format.');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.convertSecretKey = convertSecretKey;
|
|
53
|
+
function convertHexSecretKey(secretKey, targetFormat) {
|
|
54
|
+
if (targetFormat === 'hex') {
|
|
55
|
+
return secretKey;
|
|
56
|
+
}
|
|
57
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Unsupported secret key format ".concat(targetFormat, "."));
|
|
58
|
+
}
|
|
59
|
+
function convertExtendedSecretKey(extendedSecretKey, target) {
|
|
60
|
+
switch (extendedSecretKey.format) {
|
|
61
|
+
case 'encoded':
|
|
62
|
+
return (0, module_kit_1.newExtendedSecretKey)(convertEncodedExtendedSecretKey(extendedSecretKey.value, target));
|
|
63
|
+
case 'hex':
|
|
64
|
+
return (0, module_kit_1.newExtendedSecretKey)(convertHexExtendedSecretKey(extendedSecretKey.value, target));
|
|
65
|
+
default:
|
|
66
|
+
(0, coinlib_core_1.assertNever)(extendedSecretKey.format);
|
|
67
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unuspported extended secret key format.');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.convertExtendedSecretKey = convertExtendedSecretKey;
|
|
71
|
+
function convertEncodedExtendedSecretKey(extendedSecretKey, target) {
|
|
72
|
+
if (target.format === 'encoded' && extendedSecretKey.startsWith(target.type)) {
|
|
73
|
+
return extendedSecretKey;
|
|
74
|
+
}
|
|
75
|
+
switch (target.format) {
|
|
76
|
+
case 'encoded':
|
|
77
|
+
var hexExtendedSecretKey = convertEncodedExtendedSecretKey(extendedSecretKey, { format: 'hex' });
|
|
78
|
+
return convertHexExtendedSecretKey(hexExtendedSecretKey, target);
|
|
79
|
+
case 'hex':
|
|
80
|
+
var convertedExtendedPublicKey = convertKeyEncodedToHex(extendedSecretKey, extendedSecretKeyEncodings, recognizeExtendedSecretKeyEncoding, target.hashFunction);
|
|
81
|
+
if (convertedExtendedPublicKey === undefined) {
|
|
82
|
+
throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.BITCOIN, 'Unsupported encoded extended secret key.');
|
|
83
|
+
}
|
|
84
|
+
return convertedExtendedPublicKey;
|
|
85
|
+
default:
|
|
86
|
+
(0, coinlib_core_1.assertNever)(target);
|
|
87
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unsupported extended secret key format.');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function convertHexExtendedSecretKey(extendedSecretKey, target) {
|
|
91
|
+
if (target.format === 'hex') {
|
|
92
|
+
return extendedSecretKey;
|
|
93
|
+
}
|
|
94
|
+
return convertKeyHexToEncoded(extendedSecretKey, target.type, recognizeExtendedSecretKeyEncoding, target.hashFunction);
|
|
95
|
+
}
|
|
96
|
+
function recognizeExtendedSecretKeyEncoding(type) {
|
|
97
|
+
var encoding = recognizeExtendedKeyEncoding(type, extendedSecretKeyPrefixes);
|
|
98
|
+
if (encoding === undefined) {
|
|
99
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unsupported extended secret key encoding,');
|
|
100
|
+
}
|
|
101
|
+
return encoding;
|
|
102
|
+
}
|
|
103
|
+
function convertPublicKey(publicKey, targetFormat) {
|
|
104
|
+
if (publicKey.format === targetFormat) {
|
|
105
|
+
return publicKey;
|
|
106
|
+
}
|
|
107
|
+
switch (publicKey.format) {
|
|
108
|
+
case 'encoded':
|
|
109
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Unsupported public key format ".concat(publicKey.format, "."));
|
|
110
|
+
case 'hex':
|
|
111
|
+
return (0, module_kit_1.newPublicKey)(convertHexPublicKey(publicKey.value, targetFormat));
|
|
112
|
+
default:
|
|
113
|
+
(0, coinlib_core_1.assertNever)(publicKey.format);
|
|
114
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unuspported public key format.');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.convertPublicKey = convertPublicKey;
|
|
118
|
+
function convertHexPublicKey(pk, targetFormat) {
|
|
119
|
+
if (targetFormat === 'hex') {
|
|
120
|
+
return pk;
|
|
121
|
+
}
|
|
122
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, "Unsupported public key format ".concat(targetFormat, "."));
|
|
123
|
+
}
|
|
124
|
+
function convertExtendedPublicKey(extendedPublicKey, target) {
|
|
125
|
+
switch (extendedPublicKey.format) {
|
|
126
|
+
case 'encoded':
|
|
127
|
+
return (0, module_kit_1.newExtendedPublicKey)(convertEncodedExtendedPublicKey(extendedPublicKey.value, target));
|
|
128
|
+
case 'hex':
|
|
129
|
+
return (0, module_kit_1.newExtendedPublicKey)(convertHexExtendedPublicKey(extendedPublicKey.value, target));
|
|
130
|
+
default:
|
|
131
|
+
(0, coinlib_core_1.assertNever)(extendedPublicKey.format);
|
|
132
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unuspported extended public key format.');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.convertExtendedPublicKey = convertExtendedPublicKey;
|
|
136
|
+
function convertEncodedExtendedPublicKey(extendedPublicKey, target) {
|
|
137
|
+
if (target.format === 'encoded' && extendedPublicKey.startsWith(target.type)) {
|
|
138
|
+
return extendedPublicKey;
|
|
139
|
+
}
|
|
140
|
+
switch (target.format) {
|
|
141
|
+
case 'encoded':
|
|
142
|
+
var hexExtendedPublicKey = convertEncodedExtendedPublicKey(extendedPublicKey, { format: 'hex' });
|
|
143
|
+
return convertHexExtendedPublicKey(hexExtendedPublicKey, target);
|
|
144
|
+
case 'hex':
|
|
145
|
+
var convertedExtendedPublicKey = convertKeyEncodedToHex(extendedPublicKey, extendedPublicKeyEncodings, recognizeExtendedPublicKeyEncoding, target.hashFunction);
|
|
146
|
+
if (convertedExtendedPublicKey === undefined) {
|
|
147
|
+
throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.BITCOIN, 'Unsupported encoded extended public key.');
|
|
148
|
+
}
|
|
149
|
+
return convertedExtendedPublicKey;
|
|
150
|
+
default:
|
|
151
|
+
(0, coinlib_core_1.assertNever)(target);
|
|
152
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unsupported extended public key format.');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function convertHexExtendedPublicKey(extendedPublicKey, target) {
|
|
156
|
+
if (target.format === 'hex') {
|
|
157
|
+
return extendedPublicKey;
|
|
158
|
+
}
|
|
159
|
+
return convertKeyHexToEncoded(extendedPublicKey, target.type, recognizeExtendedPublicKeyEncoding, target.hashFunction);
|
|
160
|
+
}
|
|
161
|
+
function recognizeExtendedPublicKeyEncoding(type) {
|
|
162
|
+
var encoding = recognizeExtendedKeyEncoding(type, extendedPublicKeyPrefixes);
|
|
163
|
+
if (encoding === undefined) {
|
|
164
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unsupported extended public key encoding,');
|
|
165
|
+
}
|
|
166
|
+
return encoding;
|
|
167
|
+
}
|
|
168
|
+
function convertKeyEncodedToHex(key, encodings, recognizeEncoding, hashFunction) {
|
|
169
|
+
var prefix = encodings.find(function (prefix) { return key.startsWith(prefix); });
|
|
170
|
+
if (prefix === undefined) {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
var encoding = recognizeEncoding(prefix);
|
|
174
|
+
var prefixBytes = Buffer.from(encoding[prefix], 'hex').length;
|
|
175
|
+
var bs58check = hashFunction ? (0, base_1.default)(hashFunction) : bs58check_2_1_2_1.default;
|
|
176
|
+
return bs58check.decode(key).slice(prefixBytes).toString('hex');
|
|
177
|
+
}
|
|
178
|
+
function convertKeyHexToEncoded(key, type, recognizeEncoding, hashFunction) {
|
|
179
|
+
var encoding = recognizeEncoding(type);
|
|
180
|
+
var prefix = encoding[type];
|
|
181
|
+
var bs58check = hashFunction ? (0, base_1.default)(hashFunction) : bs58check_2_1_2_1.default;
|
|
182
|
+
return bs58check.encode(Buffer.concat([Buffer.from(prefix, 'hex'), Buffer.from(key, 'hex')]));
|
|
183
|
+
}
|
|
184
|
+
function createEncodings(prefixes) {
|
|
185
|
+
return prefixes.reduce(function (acc, next) { return acc.concat(Object.keys(next)); }, []);
|
|
186
|
+
}
|
|
187
|
+
function recognizeExtendedKeyEncoding(type, candidates) {
|
|
188
|
+
return candidates.find(function (candidate) { return Object.keys(candidate).includes(type); });
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/v1/utils/key.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBitcoinJSNetwork = void 0;
|
|
4
|
+
var coinlib_core_1 = require("@airgap/coinlib-core");
|
|
5
|
+
var errors_1 = require("@airgap/coinlib-core/errors");
|
|
6
|
+
function getBitcoinJSNetwork(protocolNetwork, bitcoinJS) {
|
|
7
|
+
switch (protocolNetwork.type) {
|
|
8
|
+
case 'mainnet':
|
|
9
|
+
return bitcoinJS.networks.bitcoin;
|
|
10
|
+
break;
|
|
11
|
+
case 'testnet':
|
|
12
|
+
return bitcoinJS.networks.testnet;
|
|
13
|
+
break;
|
|
14
|
+
case 'custom':
|
|
15
|
+
return bitcoinJS.networks[protocolNetwork.bitcoinjsNetworkName];
|
|
16
|
+
default:
|
|
17
|
+
(0, coinlib_core_1.assertNever)(protocolNetwork);
|
|
18
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unsupported protocol network type.');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.getBitcoinJSNetwork = getBitcoinJSNetwork;
|
|
22
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../../src/v1/utils/network.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAA8D;AAI9D,SAAgB,mBAAmB,CAAC,eAAuC,EAAE,SAAc;IACzF,QAAQ,eAAe,CAAC,IAAI,EAAE;QAC5B,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAA;YACjC,MAAK;QACP,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAA;YACjC,MAAK;QACP,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA;QACjE;YACE,IAAA,0BAAW,EAAC,eAAe,CAAC,CAAA;YAC5B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAA;KACnF;AACH,CAAC;AAdD,kDAcC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertSignature = void 0;
|
|
4
|
+
var coinlib_core_1 = require("@airgap/coinlib-core");
|
|
5
|
+
var errors_1 = require("@airgap/coinlib-core/errors");
|
|
6
|
+
var module_kit_1 = require("@airgap/module-kit");
|
|
7
|
+
function convertSignature(signature, targetFormat) {
|
|
8
|
+
if (signature.format === targetFormat) {
|
|
9
|
+
return signature;
|
|
10
|
+
}
|
|
11
|
+
switch (signature.format) {
|
|
12
|
+
case 'encoded':
|
|
13
|
+
return (0, module_kit_1.newSignature)(convertEncodedSignature(signature.value, targetFormat));
|
|
14
|
+
case 'hex':
|
|
15
|
+
return (0, module_kit_1.newSignature)(convertHexSignature(signature.value, targetFormat));
|
|
16
|
+
default:
|
|
17
|
+
(0, coinlib_core_1.assertNever)(signature.format);
|
|
18
|
+
throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Unuspported signature format.');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.convertSignature = convertSignature;
|
|
22
|
+
function convertEncodedSignature(signature, targetFormat) {
|
|
23
|
+
if (targetFormat === 'encoded') {
|
|
24
|
+
return signature;
|
|
25
|
+
}
|
|
26
|
+
return Buffer.from(signature, 'base64').toString('hex');
|
|
27
|
+
}
|
|
28
|
+
function convertHexSignature(signature, targetFormat) {
|
|
29
|
+
if (targetFormat === 'hex') {
|
|
30
|
+
return signature;
|
|
31
|
+
}
|
|
32
|
+
return Buffer.from(signature, 'hex').toString('base64');
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/v1/utils/signature.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAA8D;AAC9D,iDAA4D;AAE5D,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,YAAiC;IACtF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE;QACrC,OAAO,SAAS,CAAA;KACjB;IAED,QAAQ,SAAS,CAAC,MAAM,EAAE;QACxB,KAAK,SAAS;YACZ,OAAO,IAAA,yBAAY,EAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;QAC7E,KAAK,KAAK;YACR,OAAO,IAAA,yBAAY,EAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;QACzE;YACE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAA;KAC9E;AACH,CAAC;AAdD,4CAcC;AAED,SAAS,uBAAuB,CAAC,SAAiB,EAAE,YAAiC;IACnF,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO,SAAS,CAAA;KACjB;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,YAAiC;IAC/E,IAAI,YAAY,KAAK,KAAK,EAAE;QAC1B,OAAO,SAAS,CAAA;KACjB;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACzD,CAAC"}
|