@bitgo-beta/sdk-coin-xtz 1.4.3-alpha.401 → 1.4.3-alpha.403
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/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +44 -0
- package/dist/src/lib/address.d.ts +8 -0
- package/dist/src/lib/address.d.ts.map +1 -0
- package/dist/src/lib/address.js +10 -0
- package/dist/src/lib/iface.d.ts +148 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +3 -0
- package/dist/src/lib/index.d.ts +10 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +51 -0
- package/dist/src/lib/keyPair.d.ts +40 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +149 -0
- package/dist/src/lib/multisigUtils.d.ts +134 -0
- package/dist/src/lib/multisigUtils.d.ts.map +1 -0
- package/dist/src/lib/multisigUtils.js +1193 -0
- package/dist/src/lib/transaction.d.ts +119 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +329 -0
- package/dist/src/lib/transactionBuilder.d.ts +171 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +453 -0
- package/dist/src/lib/transferBuilder.d.ts +24 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +64 -0
- package/dist/src/lib/utils.d.ts +280 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +492 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +11 -0
- package/dist/src/txtz.d.ts +13 -0
- package/dist/src/txtz.d.ts.map +1 -0
- package/dist/src/txtz.js +14 -0
- package/dist/src/xtz.d.ts +125 -0
- package/dist/src/xtz.d.ts.map +1 -0
- package/dist/src/xtz.js +409 -0
- package/dist/test/fixtures.d.ts +571 -0
- package/dist/test/fixtures.d.ts.map +1 -0
- package/dist/test/fixtures.js +656 -0
- package/dist/test/resources.d.ts +451 -0
- package/dist/test/resources.d.ts.map +1 -0
- package/dist/test/resources.js +349 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +142 -0
- package/dist/test/unit/offlineTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/offlineTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/offlineTransactionBuilder.js +291 -0
- package/dist/test/unit/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +98 -0
- package/dist/test/unit/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder.js +656 -0
- package/dist/test/unit/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transferBuilder.js +82 -0
- package/dist/test/unit/util.d.ts +2 -0
- package/dist/test/unit/util.d.ts.map +1 -0
- package/dist/test/unit/util.js +198 -0
- package/dist/test/unit/xtz.d.ts +2 -0
- package/dist/test/unit/xtz.d.ts.map +1 -0
- package/dist/test/unit/xtz.js +192 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +10 -7
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -784
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,OAAO,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.XtzLib = void 0;
|
|
40
|
+
exports.XtzLib = __importStar(require("./lib"));
|
|
41
|
+
__exportStar(require("./xtz"), exports);
|
|
42
|
+
__exportStar(require("./txtz"), exports);
|
|
43
|
+
__exportStar(require("./register"), exports);
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWdDO0FBQ2hDLHdDQUFzQjtBQUN0Qix5Q0FBdUI7QUFDdkIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgWHR6TGliIGZyb20gJy4vbGliJztcbmV4cG9ydCAqIGZyb20gJy4veHR6JztcbmV4cG9ydCAqIGZyb20gJy4vdHh0eic7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/lib/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,qBAAa,OAAQ,YAAW,WAAW;IAEzC,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Address = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base 58 address with tz2 prefix (secp256k1)
|
|
6
|
+
*/
|
|
7
|
+
class Address {
|
|
8
|
+
}
|
|
9
|
+
exports.Address = Address;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNILE1BQWEsT0FBTztDQUduQjtBQUhELDBCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUFkZHJlc3MgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbi8qKlxuICogQmFzZSA1OCBhZGRyZXNzIHdpdGggdHoyIHByZWZpeCAoc2VjcDI1NmsxKVxuICovXG5leHBvcnQgY2xhc3MgQWRkcmVzcyBpbXBsZW1lbnRzIEJhc2VBZGRyZXNzIHtcbiAgLy8gdGhlIGJhc2U1OCByZXByZXNlbnRhdGlvblxuICBhZGRyZXNzOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { BaseFee, BaseKey, SignTransactionOptions, TransactionFee, TransactionRecipient as Recipient, TransactionPrebuild as BaseTransactionPrebuild } from '@bitgo-beta/sdk-core';
|
|
2
|
+
export interface XtzSignTransactionOptions extends SignTransactionOptions {
|
|
3
|
+
txPrebuild: TransactionPrebuild;
|
|
4
|
+
prv: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TxInfo {
|
|
7
|
+
recipients: Recipient[];
|
|
8
|
+
from: string;
|
|
9
|
+
txid: string;
|
|
10
|
+
}
|
|
11
|
+
export interface AddressInfo {
|
|
12
|
+
address: string;
|
|
13
|
+
chain: number;
|
|
14
|
+
index: number;
|
|
15
|
+
}
|
|
16
|
+
export interface TransactionPrebuild extends BaseTransactionPrebuild {
|
|
17
|
+
txHex: string;
|
|
18
|
+
txInfo: TxInfo;
|
|
19
|
+
addressInfo: AddressInfo;
|
|
20
|
+
feeInfo: XtzTransactionFee;
|
|
21
|
+
source: string;
|
|
22
|
+
dataToSign: string;
|
|
23
|
+
}
|
|
24
|
+
export interface XtzTransactionFee {
|
|
25
|
+
fee: string;
|
|
26
|
+
gasLimit?: string;
|
|
27
|
+
storageLimit?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ExplainTransactionOptions {
|
|
30
|
+
txHex?: string;
|
|
31
|
+
halfSigned?: {
|
|
32
|
+
txHex: string;
|
|
33
|
+
};
|
|
34
|
+
feeInfo: TransactionFee;
|
|
35
|
+
}
|
|
36
|
+
export interface HashType {
|
|
37
|
+
prefix: Buffer;
|
|
38
|
+
byteLength: number;
|
|
39
|
+
}
|
|
40
|
+
export interface Operation {
|
|
41
|
+
kind: string;
|
|
42
|
+
counter: string;
|
|
43
|
+
source: string;
|
|
44
|
+
fee: string;
|
|
45
|
+
gas_limit: string;
|
|
46
|
+
storage_limit: string;
|
|
47
|
+
}
|
|
48
|
+
export interface RevealOp extends Operation {
|
|
49
|
+
public_key: string;
|
|
50
|
+
}
|
|
51
|
+
export interface OriginationOp extends Operation {
|
|
52
|
+
balance: string;
|
|
53
|
+
script: any;
|
|
54
|
+
delegate?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface TransactionOp extends Operation {
|
|
57
|
+
parameters?: any;
|
|
58
|
+
destination: string;
|
|
59
|
+
amount: string;
|
|
60
|
+
}
|
|
61
|
+
export interface ParsedTransaction {
|
|
62
|
+
branch: string;
|
|
63
|
+
contents: Operation[];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Different Tezos specific fees
|
|
67
|
+
*/
|
|
68
|
+
export interface Fee extends BaseFee {
|
|
69
|
+
gasLimit?: string;
|
|
70
|
+
storageLimit?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Send transaction information
|
|
74
|
+
*/
|
|
75
|
+
export interface TransferData {
|
|
76
|
+
amount: string;
|
|
77
|
+
coin?: string;
|
|
78
|
+
from: string;
|
|
79
|
+
to: string;
|
|
80
|
+
fee: Fee;
|
|
81
|
+
dataToSign?: string;
|
|
82
|
+
counter?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Origination transaction information
|
|
86
|
+
*/
|
|
87
|
+
export interface OriginationData {
|
|
88
|
+
fee: Fee;
|
|
89
|
+
counter?: string;
|
|
90
|
+
balance?: string;
|
|
91
|
+
from?: string;
|
|
92
|
+
forwarderDestination?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Taquito return type for sign operations
|
|
96
|
+
*/
|
|
97
|
+
export interface SignResponse {
|
|
98
|
+
bytes: string;
|
|
99
|
+
sig: any;
|
|
100
|
+
prefixSig: any;
|
|
101
|
+
sbytes: string;
|
|
102
|
+
}
|
|
103
|
+
export interface IndexedData {
|
|
104
|
+
index?: number;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Tezos keys can have a specific order in the smart contracts, hence the need to add an index field
|
|
108
|
+
*/
|
|
109
|
+
export interface Key extends BaseKey, IndexedData {
|
|
110
|
+
}
|
|
111
|
+
export interface IndexedSignature extends IndexedData {
|
|
112
|
+
signature: string;
|
|
113
|
+
}
|
|
114
|
+
export type RecoverOptions = {
|
|
115
|
+
userKey: string;
|
|
116
|
+
backupKey: string;
|
|
117
|
+
walletPassphrase?: string;
|
|
118
|
+
walletContractAddress: string;
|
|
119
|
+
recoveryDestination: string;
|
|
120
|
+
krsProvider?: string;
|
|
121
|
+
gasPrice?: number;
|
|
122
|
+
gasLimit?: number;
|
|
123
|
+
bitgoFeeAddress?: string;
|
|
124
|
+
bitgoDestinationAddress?: string;
|
|
125
|
+
tokenContractAddress?: string;
|
|
126
|
+
intendedChain?: string;
|
|
127
|
+
derivationSeed?: string;
|
|
128
|
+
apiKey?: string;
|
|
129
|
+
isUnsignedSweep?: boolean;
|
|
130
|
+
};
|
|
131
|
+
export interface OfflineVaultTxInfo {
|
|
132
|
+
nextContractSequenceId?: string;
|
|
133
|
+
contractSequenceId?: string;
|
|
134
|
+
tx?: string;
|
|
135
|
+
txHex?: string;
|
|
136
|
+
userKey?: string;
|
|
137
|
+
backupKey?: string;
|
|
138
|
+
coin: string;
|
|
139
|
+
gasPrice: number;
|
|
140
|
+
gasLimit: number;
|
|
141
|
+
recipients: Recipient[];
|
|
142
|
+
walletContractAddress: string;
|
|
143
|
+
amount: string;
|
|
144
|
+
backupKeyNonce: number;
|
|
145
|
+
isEvmBasedCrossChainRecovery?: boolean;
|
|
146
|
+
walletVersion?: number;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlRmVlLFxuICBCYXNlS2V5LFxuICBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBUcmFuc2FjdGlvbkZlZSxcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQgYXMgUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblByZWJ1aWxkIGFzIEJhc2VUcmFuc2FjdGlvblByZWJ1aWxkLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgWHR6U2lnblRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMge1xuICB0eFByZWJ1aWxkOiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICBwcnY6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeEluZm8ge1xuICByZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcbiAgZnJvbTogc3RyaW5nO1xuICB0eGlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc0luZm8ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25QcmVidWlsZCBleHRlbmRzIEJhc2VUcmFuc2FjdGlvblByZWJ1aWxkIHtcbiAgdHhIZXg6IHN0cmluZztcbiAgdHhJbmZvOiBUeEluZm87XG4gIGFkZHJlc3NJbmZvOiBBZGRyZXNzSW5mbztcbiAgZmVlSW5mbzogWHR6VHJhbnNhY3Rpb25GZWU7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBkYXRhVG9TaWduOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWHR6VHJhbnNhY3Rpb25GZWUge1xuICBmZWU6IHN0cmluZztcbiAgZ2FzTGltaXQ/OiBzdHJpbmc7XG4gIHN0b3JhZ2VMaW1pdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg/OiBzdHJpbmc7XG4gIGhhbGZTaWduZWQ/OiB7XG4gICAgdHhIZXg6IHN0cmluZztcbiAgfTtcbiAgZmVlSW5mbzogVHJhbnNhY3Rpb25GZWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzaFR5cGUge1xuICBwcmVmaXg6IEJ1ZmZlcjtcbiAgYnl0ZUxlbmd0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbiB7XG4gIGtpbmQ6IHN0cmluZztcbiAgY291bnRlcjogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgZmVlOiBzdHJpbmc7XG4gIGdhc19saW1pdDogc3RyaW5nO1xuICBzdG9yYWdlX2xpbWl0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV2ZWFsT3AgZXh0ZW5kcyBPcGVyYXRpb24ge1xuICBwdWJsaWNfa2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luYXRpb25PcCBleHRlbmRzIE9wZXJhdGlvbiB7XG4gIGJhbGFuY2U6IHN0cmluZztcbiAgc2NyaXB0OiBhbnk7XG4gIGRlbGVnYXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uT3AgZXh0ZW5kcyBPcGVyYXRpb24ge1xuICBwYXJhbWV0ZXJzPzogYW55O1xuICBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRUcmFuc2FjdGlvbiB7XG4gIGJyYW5jaDogc3RyaW5nO1xuICBjb250ZW50czogT3BlcmF0aW9uW107XG59XG5cbi8qKlxuICogRGlmZmVyZW50IFRlem9zIHNwZWNpZmljIGZlZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZWUgZXh0ZW5kcyBCYXNlRmVlIHtcbiAgZ2FzTGltaXQ/OiBzdHJpbmc7XG4gIHN0b3JhZ2VMaW1pdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZW5kIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXJEYXRhIHtcbiAgYW1vdW50OiBzdHJpbmc7XG4gIGNvaW4/OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgZmVlOiBGZWU7XG4gIGRhdGFUb1NpZ24/OiBzdHJpbmc7XG4gIGNvdW50ZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3JpZ2luYXRpb24gdHJhbnNhY3Rpb24gaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmlnaW5hdGlvbkRhdGEge1xuICBmZWU6IEZlZTtcbiAgY291bnRlcj86IHN0cmluZztcbiAgYmFsYW5jZT86IHN0cmluZztcbiAgZnJvbT86IHN0cmluZztcbiAgZm9yd2FyZGVyRGVzdGluYXRpb24/OiBzdHJpbmc7XG59XG4vKipcbiAqIFRhcXVpdG8gcmV0dXJuIHR5cGUgZm9yIHNpZ24gb3BlcmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25SZXNwb25zZSB7XG4gIGJ5dGVzOiBzdHJpbmc7XG4gIHNpZzogYW55O1xuICBwcmVmaXhTaWc6IGFueTtcbiAgc2J5dGVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhlZERhdGEge1xuICBpbmRleD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUZXpvcyBrZXlzIGNhbiBoYXZlIGEgc3BlY2lmaWMgb3JkZXIgaW4gdGhlIHNtYXJ0IGNvbnRyYWN0cywgaGVuY2UgdGhlIG5lZWQgdG8gYWRkIGFuIGluZGV4IGZpZWxkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5IGV4dGVuZHMgQmFzZUtleSwgSW5kZXhlZERhdGEge31cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleGVkU2lnbmF0dXJlIGV4dGVuZHMgSW5kZXhlZERhdGEge1xuICBzaWduYXR1cmU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVjb3Zlck9wdGlvbnMgPSB7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHdhbGxldENvbnRyYWN0QWRkcmVzczogc3RyaW5nOyAvLyB1c2UgdGhpcyBhcyB3YWxsZXRCYXNlQWRkcmVzcyBmb3IgVFNTXG4gIHJlY292ZXJ5RGVzdGluYXRpb246IHN0cmluZztcbiAga3JzUHJvdmlkZXI/OiBzdHJpbmc7XG4gIGdhc1ByaWNlPzogbnVtYmVyO1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgYml0Z29GZWVBZGRyZXNzPzogc3RyaW5nO1xuICBiaXRnb0Rlc3RpbmF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgdG9rZW5Db250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIGludGVuZGVkQ2hhaW4/OiBzdHJpbmc7XG4gIGRlcml2YXRpb25TZWVkPzogc3RyaW5nO1xuICBhcGlLZXk/OiBzdHJpbmc7XG4gIGlzVW5zaWduZWRTd2VlcD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9mZmxpbmVWYXVsdFR4SW5mbyB7XG4gIG5leHRDb250cmFjdFNlcXVlbmNlSWQ/OiBzdHJpbmc7XG4gIGNvbnRyYWN0U2VxdWVuY2VJZD86IHN0cmluZztcbiAgdHg/OiBzdHJpbmc7XG4gIHR4SGV4Pzogc3RyaW5nO1xuICB1c2VyS2V5Pzogc3RyaW5nO1xuICBiYWNrdXBLZXk/OiBzdHJpbmc7XG4gIGNvaW46IHN0cmluZztcbiAgZ2FzUHJpY2U6IG51bWJlcjtcbiAgZ2FzTGltaXQ6IG51bWJlcjtcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gIHdhbGxldENvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgYmFja3VwS2V5Tm9uY2U6IG51bWJlcjtcbiAgaXNFdm1CYXNlZENyb3NzQ2hhaW5SZWNvdmVyeT86IGJvb2xlYW47XG4gIHdhbGxldFZlcnNpb24/OiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { KeyPair } from './keyPair';
|
|
2
|
+
export { Address } from './address';
|
|
3
|
+
export { Transaction } from './transaction';
|
|
4
|
+
export { TransactionBuilder } from './transactionBuilder';
|
|
5
|
+
import * as Interface from './iface';
|
|
6
|
+
import * as Utils from './utils';
|
|
7
|
+
import * as MultisigUtils from './multisigUtils';
|
|
8
|
+
declare const mergedUtils: typeof Utils & typeof MultisigUtils;
|
|
9
|
+
export { Interface, mergedUtils as Utils };
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,QAAA,MAAM,WAAW,qCAAsC,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,WAAW,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Utils = exports.Interface = exports.TransactionBuilder = exports.Transaction = exports.Address = exports.KeyPair = void 0;
|
|
37
|
+
var keyPair_1 = require("./keyPair");
|
|
38
|
+
Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
|
|
39
|
+
var address_1 = require("./address");
|
|
40
|
+
Object.defineProperty(exports, "Address", { enumerable: true, get: function () { return address_1.Address; } });
|
|
41
|
+
var transaction_1 = require("./transaction");
|
|
42
|
+
Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
|
|
43
|
+
var transactionBuilder_1 = require("./transactionBuilder");
|
|
44
|
+
Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
|
|
45
|
+
const Interface = __importStar(require("./iface"));
|
|
46
|
+
exports.Interface = Interface;
|
|
47
|
+
const Utils = __importStar(require("./utils"));
|
|
48
|
+
const MultisigUtils = __importStar(require("./multisigUtils"));
|
|
49
|
+
const mergedUtils = Object.assign(Utils, MultisigUtils);
|
|
50
|
+
exports.Utils = mergedUtils;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIscUNBQW9DO0FBQTNCLGtHQUFBLE9BQU8sT0FBQTtBQUNoQiw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUUzQixtREFBcUM7QUFLNUIsOEJBQVM7QUFKbEIsK0NBQWlDO0FBQ2pDLCtEQUFpRDtBQUNqRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztBQUVyQiw0QkFBSyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4vYWRkcmVzcyc7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuXG5pbXBvcnQgKiBhcyBJbnRlcmZhY2UgZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIE11bHRpc2lnVXRpbHMgZnJvbSAnLi9tdWx0aXNpZ1V0aWxzJztcbmNvbnN0IG1lcmdlZFV0aWxzID0gT2JqZWN0LmFzc2lnbihVdGlscywgTXVsdGlzaWdVdGlscyk7XG5cbmV4cG9ydCB7IEludGVyZmFjZSwgbWVyZ2VkVXRpbHMgYXMgVXRpbHMgfTtcbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo-beta/sdk-core';
|
|
2
|
+
/**
|
|
3
|
+
* Tezos keys and address management.
|
|
4
|
+
*/
|
|
5
|
+
export declare class KeyPair extends Secp256k1ExtendedKeyPair {
|
|
6
|
+
/**
|
|
7
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
8
|
+
*
|
|
9
|
+
* @param {KeyPairOptions} source Either a master seed, a private key (extended or raw), or a public key
|
|
10
|
+
* (extended, compressed, or uncompressed)
|
|
11
|
+
*/
|
|
12
|
+
constructor(source?: KeyPairOptions);
|
|
13
|
+
/**
|
|
14
|
+
* Build a Hierarchical Deterministic node or an ECPair from a private key.
|
|
15
|
+
* Specific Tezos implementation
|
|
16
|
+
*
|
|
17
|
+
* @param {string} prv An extended or raw private key
|
|
18
|
+
*/
|
|
19
|
+
recordKeysFromPrivateKey(prv: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Build a Hierarchical Deterministic node or an ECPair from a public key.
|
|
22
|
+
* Specific Tezos implementation
|
|
23
|
+
*
|
|
24
|
+
* @param {string} pub - An extended, compressed, or uncompressed public key
|
|
25
|
+
*/
|
|
26
|
+
recordKeysFromPublicKey(pub: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Return Tezos default keys with the respective prefixes
|
|
29
|
+
*
|
|
30
|
+
* @returns {DefaultKeys} The keys in the protocol default key format
|
|
31
|
+
*/
|
|
32
|
+
getKeys(): DefaultKeys;
|
|
33
|
+
/**
|
|
34
|
+
* Get a public address.
|
|
35
|
+
*
|
|
36
|
+
* @returns {string} The public address
|
|
37
|
+
*/
|
|
38
|
+
getAddress(): string;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=keyPair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAQX,cAAc,EACd,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAK9B;;GAEG;AACH,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC;;;;;OAKG;IACH,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAa3C;;;;;OAKG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAa1C;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAYtB;;;;OAIG;IACH,UAAU,IAAI,MAAM;CAMrB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.KeyPair = void 0;
|
|
40
|
+
const crypto_1 = require("crypto");
|
|
41
|
+
const blake2b_1 = __importDefault(require("@bitgo-beta/blake2b"));
|
|
42
|
+
const secp256k1_1 = require("@bitgo-beta/secp256k1");
|
|
43
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
44
|
+
const Utils = __importStar(require("./utils"));
|
|
45
|
+
const DEFAULT_SEED_SIZE_BYTES = 16;
|
|
46
|
+
/**
|
|
47
|
+
* Tezos keys and address management.
|
|
48
|
+
*/
|
|
49
|
+
class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
50
|
+
/**
|
|
51
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
52
|
+
*
|
|
53
|
+
* @param {KeyPairOptions} source Either a master seed, a private key (extended or raw), or a public key
|
|
54
|
+
* (extended, compressed, or uncompressed)
|
|
55
|
+
*/
|
|
56
|
+
constructor(source) {
|
|
57
|
+
super(source);
|
|
58
|
+
if (!source) {
|
|
59
|
+
const seed = (0, crypto_1.randomBytes)(DEFAULT_SEED_SIZE_BYTES);
|
|
60
|
+
this.hdNode = secp256k1_1.bip32.fromSeed(seed);
|
|
61
|
+
}
|
|
62
|
+
else if ((0, sdk_core_1.isSeed)(source)) {
|
|
63
|
+
this.hdNode = secp256k1_1.bip32.fromSeed(source.seed);
|
|
64
|
+
}
|
|
65
|
+
else if ((0, sdk_core_1.isPrivateKey)(source)) {
|
|
66
|
+
this.recordKeysFromPrivateKey(source.prv);
|
|
67
|
+
}
|
|
68
|
+
else if ((0, sdk_core_1.isPublicKey)(source)) {
|
|
69
|
+
this.recordKeysFromPublicKey(source.pub);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error('Invalid key pair options');
|
|
73
|
+
}
|
|
74
|
+
if (this.hdNode) {
|
|
75
|
+
this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Build a Hierarchical Deterministic node or an ECPair from a private key.
|
|
80
|
+
* Specific Tezos implementation
|
|
81
|
+
*
|
|
82
|
+
* @param {string} prv An extended or raw private key
|
|
83
|
+
*/
|
|
84
|
+
recordKeysFromPrivateKey(prv) {
|
|
85
|
+
if ((0, sdk_core_1.isValidXprv)(prv)) {
|
|
86
|
+
this.hdNode = secp256k1_1.bip32.fromBase58(prv);
|
|
87
|
+
}
|
|
88
|
+
else if ((0, sdk_core_1.isValidPrv)(prv)) {
|
|
89
|
+
// Cannot create the HD node without the chain code, so create a regular Key Chain
|
|
90
|
+
this.keyPair = secp256k1_1.ECPair.fromPrivateKey(Buffer.from(prv, 'hex'));
|
|
91
|
+
}
|
|
92
|
+
else if (Utils.isValidKey(prv, Utils.hashTypes.spsk)) {
|
|
93
|
+
this.keyPair = secp256k1_1.ECPair.fromPrivateKey(Utils.decodeKey(prv, Utils.hashTypes.spsk));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
throw new Error('Unsupported private key');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build a Hierarchical Deterministic node or an ECPair from a public key.
|
|
101
|
+
* Specific Tezos implementation
|
|
102
|
+
*
|
|
103
|
+
* @param {string} pub - An extended, compressed, or uncompressed public key
|
|
104
|
+
*/
|
|
105
|
+
recordKeysFromPublicKey(pub) {
|
|
106
|
+
if ((0, sdk_core_1.isValidXpub)(pub)) {
|
|
107
|
+
this.hdNode = secp256k1_1.bip32.fromBase58(pub);
|
|
108
|
+
}
|
|
109
|
+
else if ((0, sdk_core_1.isValidPub)(pub)) {
|
|
110
|
+
// Cannot create an HD node without the chain code, so create a regular Key Chain
|
|
111
|
+
this.keyPair = secp256k1_1.ECPair.fromPublicKey(Buffer.from(pub, 'hex'));
|
|
112
|
+
}
|
|
113
|
+
else if (Utils.isValidKey(pub, Utils.hashTypes.sppk)) {
|
|
114
|
+
this.keyPair = secp256k1_1.ECPair.fromPublicKey(Utils.decodeKey(pub, Utils.hashTypes.sppk));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
throw new Error('Unsupported public key: ' + pub);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Return Tezos default keys with the respective prefixes
|
|
122
|
+
*
|
|
123
|
+
* @returns {DefaultKeys} The keys in the protocol default key format
|
|
124
|
+
*/
|
|
125
|
+
getKeys() {
|
|
126
|
+
// Always use the compressed version to be consistent
|
|
127
|
+
const result = {
|
|
128
|
+
pub: Utils.base58encode(Utils.hashTypes.sppk.prefix, this.getPublicKey({ compressed: true })),
|
|
129
|
+
};
|
|
130
|
+
const prvBuffer = this.getPrivateKey();
|
|
131
|
+
if (prvBuffer) {
|
|
132
|
+
result.prv = Utils.base58encode(Utils.hashTypes.spsk.prefix, prvBuffer);
|
|
133
|
+
}
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get a public address.
|
|
138
|
+
*
|
|
139
|
+
* @returns {string} The public address
|
|
140
|
+
*/
|
|
141
|
+
getAddress() {
|
|
142
|
+
const pub = this.getPublicKey({ compressed: true });
|
|
143
|
+
const out = Buffer.alloc(20);
|
|
144
|
+
const b2b = (0, blake2b_1.default)(out.length).update(pub).digest(out);
|
|
145
|
+
return Utils.base58encode(Utils.hashTypes.tz2.prefix, b2b);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.KeyPair = KeyPair;
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBcUM7QUFDckMsa0VBQTBDO0FBQzFDLHFEQUFzRDtBQUN0RCxtREFXOEI7QUFDOUIsK0NBQWlDO0FBRWpDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsbUNBQXdCO0lBQ25EOzs7OztPQUtHO0lBQ0gsWUFBWSxNQUF1QjtRQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksR0FBRyxJQUFBLG9CQUFXLEVBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLGlCQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxJQUFJLElBQUEsaUJBQU0sRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsaUJBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLElBQUEsdUJBQVksRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLElBQUksSUFBQSxzQkFBVyxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENB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VTtRQUNSLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUEsaUJBQU8sRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQTdGRCwwQkE2RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgYmxha2UyYiBmcm9tICdAYml0Z28tYmV0YS9ibGFrZTJiJztcbmltcG9ydCB7IGJpcDMyLCBFQ1BhaXIgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuaW1wb3J0IHtcbiAgRGVmYXVsdEtleXMsXG4gIGlzUHJpdmF0ZUtleSxcbiAgaXNQdWJsaWNLZXksXG4gIGlzU2VlZCxcbiAgaXNWYWxpZFBydixcbiAgaXNWYWxpZFB1YixcbiAgaXNWYWxpZFhwcnYsXG4gIGlzVmFsaWRYcHViLFxuICBLZXlQYWlyT3B0aW9ucyxcbiAgU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgREVGQVVMVF9TRUVEX1NJWkVfQllURVMgPSAxNjtcblxuLyoqXG4gKiBUZXpvcyBrZXlzIGFuZCBhZGRyZXNzIG1hbmFnZW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpck9wdGlvbnN9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSAoZXh0ZW5kZWQgb3IgcmF3KSwgb3IgYSBwdWJsaWMga2V5XG4gICAqICAgICAoZXh0ZW5kZWQsIGNvbXByZXNzZWQsIG9yIHVuY29tcHJlc3NlZClcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgY29uc3Qgc2VlZCA9IHJhbmRvbUJ5dGVzKERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTKTtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1NlZWQoc291cmNlKSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzb3VyY2Uuc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1ByaXZhdGVLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5yZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkoc291cmNlLnBydik7XG4gICAgfSBlbHNlIGlmIChpc1B1YmxpY0tleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHVibGljS2V5KHNvdXJjZS5wdWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhkTm9kZSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0gU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLnRvS2V5UGFpcih0aGlzLmhkTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgSGllcmFyY2hpY2FsIERldGVybWluaXN0aWMgbm9kZSBvciBhbiBFQ1BhaXIgZnJvbSBhIHByaXZhdGUga2V5LlxuICAgKiBTcGVjaWZpYyBUZXpvcyBpbXBsZW1lbnRhdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJ2IEFuIGV4dGVuZGVkIG9yIHJhdyBwcml2YXRlIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHBydjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGlzVmFsaWRYcHJ2KHBydikpIHtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbUJhc2U1OChwcnYpO1xuICAgIH0gZWxzZSBpZiAoaXNWYWxpZFBydihwcnYpKSB7XG4gICAgICAvLyBDYW5ub3QgY3JlYXRlIHRoZSBIRCBub2RlIHdpdGhvdXQgdGhlIGNoYWluIGNvZGUsIHNvIGNyZWF0ZSBhIHJlZ3VsYXIgS2V5IENoYWluXG4gICAgICB0aGlzLmtleVBhaXIgPSBFQ1BhaXIuZnJvbVByaXZhdGVLZXkoQnVmZmVyLmZyb20ocHJ2LCAnaGV4JykpO1xuICAgIH0gZWxzZSBpZiAoVXRpbHMuaXNWYWxpZEtleShwcnYsIFV0aWxzLmhhc2hUeXBlcy5zcHNrKSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21Qcml2YXRlS2V5KFV0aWxzLmRlY29kZUtleShwcnYsIFV0aWxzLmhhc2hUeXBlcy5zcHNrKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBIaWVyYXJjaGljYWwgRGV0ZXJtaW5pc3RpYyBub2RlIG9yIGFuIEVDUGFpciBmcm9tIGEgcHVibGljIGtleS5cbiAgICogU3BlY2lmaWMgVGV6b3MgaW1wbGVtZW50YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YiAtIEFuIGV4dGVuZGVkLCBjb21wcmVzc2VkLCBvciB1bmNvbXByZXNzZWQgcHVibGljIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkocHViOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXNWYWxpZFhwdWIocHViKSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHB1Yik7XG4gICAgfSBlbHNlIGlmIChpc1ZhbGlkUHViKHB1YikpIHtcbiAgICAgIC8vIENhbm5vdCBjcmVhdGUgYW4gSEQgbm9kZSB3aXRob3V0IHRoZSBjaGFpbiBjb2RlLCBzbyBjcmVhdGUgYSByZWd1bGFyIEtleSBDaGFpblxuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21QdWJsaWNLZXkoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgIH0gZWxzZSBpZiAoVXRpbHMuaXNWYWxpZEtleShwdWIsIFV0aWxzLmhhc2hUeXBlcy5zcHBrKSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21QdWJsaWNLZXkoVXRpbHMuZGVjb2RlS2V5KHB1YiwgVXRpbHMuaGFzaFR5cGVzLnNwcGspKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBwdWJsaWMga2V5OiAnICsgcHViKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIFRlem9zIGRlZmF1bHQga2V5cyB3aXRoIHRoZSByZXNwZWN0aXZlIHByZWZpeGVzXG4gICAqXG4gICAqIEByZXR1cm5zIHtEZWZhdWx0S2V5c30gVGhlIGtleXMgaW4gdGhlIHByb3RvY29sIGRlZmF1bHQga2V5IGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgLy8gQWx3YXlzIHVzZSB0aGUgY29tcHJlc3NlZCB2ZXJzaW9uIHRvIGJlIGNvbnNpc3RlbnRcbiAgICBjb25zdCByZXN1bHQ6IERlZmF1bHRLZXlzID0ge1xuICAgICAgcHViOiBVdGlscy5iYXNlNThlbmNvZGUoVXRpbHMuaGFzaFR5cGVzLnNwcGsucHJlZml4LCB0aGlzLmdldFB1YmxpY0tleSh7IGNvbXByZXNzZWQ6IHRydWUgfSkpLFxuICAgIH07XG4gICAgY29uc3QgcHJ2QnVmZmVyOiBCdWZmZXIgfCB1bmRlZmluZWQgPSB0aGlzLmdldFByaXZhdGVLZXkoKTtcbiAgICBpZiAocHJ2QnVmZmVyKSB7XG4gICAgICByZXN1bHQucHJ2ID0gVXRpbHMuYmFzZTU4ZW5jb2RlKFV0aWxzLmhhc2hUeXBlcy5zcHNrLnByZWZpeCwgcHJ2QnVmZmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBwdWJsaWMgYWRkcmVzcy5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHB1YmxpYyBhZGRyZXNzXG4gICAqL1xuICBnZXRBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcHViID0gdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkOiB0cnVlIH0pO1xuICAgIGNvbnN0IG91dCA9IEJ1ZmZlci5hbGxvYygyMCk7XG4gICAgY29uc3QgYjJiID0gYmxha2UyYihvdXQubGVuZ3RoKS51cGRhdGUocHViKS5kaWdlc3Qob3V0KTtcbiAgICByZXR1cm4gVXRpbHMuYmFzZTU4ZW5jb2RlKFV0aWxzLmhhc2hUeXBlcy50ejIucHJlZml4LCBiMmIpO1xuICB9XG59XG4iXX0=
|