@bitgo-beta/sdk-coin-flrp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +5 -0
- package/.eslintrc.json +7 -0
- package/.mocharc.yml +8 -0
- package/CHANGELOG.md +0 -0
- package/LICENSE +191 -0
- package/dist/src/flrp.d.ts +70 -0
- package/dist/src/flrp.d.ts.map +1 -0
- package/dist/src/flrp.js +175 -0
- package/dist/src/iface.d.ts +25 -0
- package/dist/src/iface.d.ts.map +1 -0
- package/dist/src/iface.js +3 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +45 -0
- package/dist/src/lib/constants.d.ts +11 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +17 -0
- package/dist/src/lib/errors.d.ts +8 -0
- package/dist/src/lib/errors.d.ts.map +1 -0
- package/dist/src/lib/errors.js +19 -0
- package/dist/src/lib/iface.d.ts +68 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +22 -0
- package/dist/src/lib/index.d.ts +5 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +26 -0
- package/dist/src/lib/keyPair.d.ts +58 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +144 -0
- package/dist/src/lib/utils.d.ts +158 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +390 -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/tflrp.d.ts +8 -0
- package/dist/src/tflrp.d.ts.map +1 -0
- package/dist/src/tflrp.js +14 -0
- package/dist/test/unit/flrp.d.ts +2 -0
- package/dist/test/unit/flrp.d.ts.map +1 -0
- package/dist/test/unit/flrp.js +29 -0
- package/dist/test/unit/smoke.d.ts +2 -0
- package/dist/test/unit/smoke.d.ts.map +1 -0
- package/dist/test/unit/smoke.js +9 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidFeeError = exports.AddressValidationError = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
class AddressValidationError extends sdk_core_1.BuildTransactionError {
|
|
6
|
+
constructor(malformedAddress) {
|
|
7
|
+
super(`The address '${malformedAddress}' is not a well-formed flrp address`);
|
|
8
|
+
this.name = AddressValidationError.name;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.AddressValidationError = AddressValidationError;
|
|
12
|
+
class InvalidFeeError extends sdk_core_1.BuildTransactionError {
|
|
13
|
+
constructor(type, expectedType) {
|
|
14
|
+
super(`The specified type: "${type}" is not valid. Please provide the type: "${expectedType}"`);
|
|
15
|
+
this.name = InvalidFeeError.name;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.InvalidFeeError = InvalidFeeError;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTZEO0FBRTdELE1BQWEsc0JBQXVCLFNBQVEsZ0NBQXFCO0lBQy9ELFlBQVksZ0JBQXdCO1FBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsZ0JBQWdCLHFDQUFxQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBTEQsd0RBS0M7QUFFRCxNQUFhLGVBQWdCLFNBQVEsZ0NBQXFCO0lBQ3hELFlBQVksSUFBYSxFQUFFLFlBQXFCO1FBQzlDLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSw2Q0FBNkMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBTEQsMENBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgQnVpbGRUcmFuc2FjdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IobWFsZm9ybWVkQWRkcmVzczogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRoZSBhZGRyZXNzICcke21hbGZvcm1lZEFkZHJlc3N9JyBpcyBub3QgYSB3ZWxsLWZvcm1lZCBmbHJwIGFkZHJlc3NgKTtcbiAgICB0aGlzLm5hbWUgPSBBZGRyZXNzVmFsaWRhdGlvbkVycm9yLm5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRGZWVFcnJvciBleHRlbmRzIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHR5cGU/OiBzdHJpbmcsIGV4cGVjdGVkVHlwZT86IHN0cmluZykge1xuICAgIHN1cGVyKGBUaGUgc3BlY2lmaWVkIHR5cGU6IFwiJHt0eXBlfVwiIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHByb3ZpZGUgdGhlIHR5cGU6IFwiJHtleHBlY3RlZFR5cGV9XCJgKTtcbiAgICB0aGlzLm5hbWUgPSBJbnZhbGlkRmVlRXJyb3IubmFtZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { TransactionExplanation as BaseTransactionExplanation, Entry, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { UnsignedTx, TransferableOutput, avaxSerial } from '@flarenetwork/flarejs';
|
|
3
|
+
export interface FlrpEntry extends Entry {
|
|
4
|
+
id: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TransactionExplanation extends BaseTransactionExplanation {
|
|
7
|
+
type: TransactionType;
|
|
8
|
+
rewardAddresses: string[];
|
|
9
|
+
inputs: Entry[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
|
|
13
|
+
*/
|
|
14
|
+
export declare enum MethodNames {
|
|
15
|
+
addDelegator = 0,
|
|
16
|
+
addValidator = 1
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The transaction data returned from the toJson() function of a transaction
|
|
20
|
+
*/
|
|
21
|
+
export interface TxData {
|
|
22
|
+
id: string;
|
|
23
|
+
inputs: Entry[];
|
|
24
|
+
type: TransactionType;
|
|
25
|
+
fromAddresses: string[];
|
|
26
|
+
threshold: number;
|
|
27
|
+
locktime: string;
|
|
28
|
+
signatures: string[];
|
|
29
|
+
outputs: Entry[];
|
|
30
|
+
changeOutputs: Entry[];
|
|
31
|
+
sourceChain?: string;
|
|
32
|
+
destinationChain?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Decoded UTXO object. This is for a single utxo
|
|
36
|
+
*
|
|
37
|
+
* @param {number} outputID
|
|
38
|
+
* @param {string} amount Amount as a Big Number string
|
|
39
|
+
* @param {string} txid Transaction ID encoded as cb58
|
|
40
|
+
* @param {string} outputidx Output index as a string
|
|
41
|
+
*/
|
|
42
|
+
export type DecodedUtxoObj = {
|
|
43
|
+
outputID: number;
|
|
44
|
+
amount: string;
|
|
45
|
+
txid: string;
|
|
46
|
+
outputidx: string;
|
|
47
|
+
threshold: number;
|
|
48
|
+
addresses: string[];
|
|
49
|
+
addressesIndex?: number[];
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* FlareJS uses string-based TypeSymbols instead of numeric type IDs
|
|
53
|
+
* For SECP256K1 Transfer Output, use TypeSymbols.TransferOutput from @flarenetwork/flarejs
|
|
54
|
+
*
|
|
55
|
+
* @see https://docs.flare.network/ for Flare network documentation
|
|
56
|
+
* @deprecated Use TypeSymbols.TransferOutput from @flarenetwork/flarejs instead
|
|
57
|
+
*/
|
|
58
|
+
export declare const SECP256K1_Transfer_Output = 7;
|
|
59
|
+
export declare const ADDRESS_SEPARATOR = "~";
|
|
60
|
+
export declare const INPUT_SEPARATOR = ":";
|
|
61
|
+
export type DeprecatedTx = unknown;
|
|
62
|
+
export type DeprecatedBaseTx = unknown;
|
|
63
|
+
export type Tx = UnsignedTx;
|
|
64
|
+
export type BaseTx = avaxSerial.BaseTx;
|
|
65
|
+
export type AvaxTx = avaxSerial.AvaxTx;
|
|
66
|
+
export type DeprecatedOutput = unknown;
|
|
67
|
+
export type Output = TransferableOutput;
|
|
68
|
+
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnF,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,EAAE,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,YAAY,IAAA;IACZ,YAAY,IAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,eAAe,MAAM,CAAC;AAGnC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AACnC,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACvC,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC;AAC5B,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACvC,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACvC,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACvC,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INPUT_SEPARATOR = exports.ADDRESS_SEPARATOR = exports.SECP256K1_Transfer_Output = exports.MethodNames = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
|
|
6
|
+
*/
|
|
7
|
+
var MethodNames;
|
|
8
|
+
(function (MethodNames) {
|
|
9
|
+
MethodNames[MethodNames["addDelegator"] = 0] = "addDelegator";
|
|
10
|
+
MethodNames[MethodNames["addValidator"] = 1] = "addValidator";
|
|
11
|
+
})(MethodNames || (exports.MethodNames = MethodNames = {}));
|
|
12
|
+
/**
|
|
13
|
+
* FlareJS uses string-based TypeSymbols instead of numeric type IDs
|
|
14
|
+
* For SECP256K1 Transfer Output, use TypeSymbols.TransferOutput from @flarenetwork/flarejs
|
|
15
|
+
*
|
|
16
|
+
* @see https://docs.flare.network/ for Flare network documentation
|
|
17
|
+
* @deprecated Use TypeSymbols.TransferOutput from @flarenetwork/flarejs instead
|
|
18
|
+
*/
|
|
19
|
+
exports.SECP256K1_Transfer_Output = 7; // Legacy - FlareJS uses TypeSymbols.TransferOutput
|
|
20
|
+
exports.ADDRESS_SEPARATOR = '~';
|
|
21
|
+
exports.INPUT_SEPARATOR = ':';
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBOztHQUVHO0FBQ0gsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDZEQUFZLENBQUE7SUFDWiw2REFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLFdBQVcsMkJBQVgsV0FBVyxRQUd0QjtBQXFDRDs7Ozs7O0dBTUc7QUFDVSxRQUFBLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtBQUVsRixRQUFBLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUN4QixRQUFBLGVBQWUsR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBFbnRyeSwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVW5zaWduZWRUeCwgVHJhbnNmZXJhYmxlT3V0cHV0LCBhdmF4U2VyaWFsIH0gZnJvbSAnQGZsYXJlbmV0d29yay9mbGFyZWpzJztcbmV4cG9ydCBpbnRlcmZhY2UgRmxycEVudHJ5IGV4dGVuZHMgRW50cnkge1xuICBpZDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHJld2FyZEFkZHJlc3Nlczogc3RyaW5nW107XG4gIGlucHV0czogRW50cnlbXTtcbn1cblxuLyoqXG4gKiBNZXRob2QgbmFtZXMgZm9yIHRoZSB0cmFuc2FjdGlvbiBtZXRob2QuIE5hbWVzIGNoYW5nZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbiBlLmcgJ2JvbmQnIGZvciB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZW51bSBNZXRob2ROYW1lcyB7XG4gIGFkZERlbGVnYXRvcixcbiAgYWRkVmFsaWRhdG9yLFxufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEVudHJ5W107XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgZnJvbUFkZHJlc3Nlczogc3RyaW5nW107XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBsb2NrdGltZTogc3RyaW5nO1xuICBzaWduYXR1cmVzOiBzdHJpbmdbXTtcbiAgb3V0cHV0czogRW50cnlbXTtcbiAgY2hhbmdlT3V0cHV0czogRW50cnlbXTtcbiAgc291cmNlQ2hhaW4/OiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uQ2hhaW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVjb2RlZCBVVFhPIG9iamVjdC4gVGhpcyBpcyBmb3IgYSBzaW5nbGUgdXR4b1xuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBvdXRwdXRJRFxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCBBbW91bnQgYXMgYSBCaWcgTnVtYmVyIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IHR4aWQgVHJhbnNhY3Rpb24gSUQgZW5jb2RlZCBhcyBjYjU4XG4gKiBAcGFyYW0ge3N0cmluZ30gb3V0cHV0aWR4IE91dHB1dCBpbmRleCBhcyBhIHN0cmluZ1xuICovXG5leHBvcnQgdHlwZSBEZWNvZGVkVXR4b09iaiA9IHtcbiAgb3V0cHV0SUQ6IG51bWJlcjtcbiAgYW1vdW50OiBzdHJpbmc7XG4gIHR4aWQ6IHN0cmluZztcbiAgb3V0cHV0aWR4OiBzdHJpbmc7XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBhZGRyZXNzZXM6IHN0cmluZ1tdO1xuICBhZGRyZXNzZXNJbmRleD86IG51bWJlcltdO1xufTtcblxuLyoqXG4gKiBGbGFyZUpTIHVzZXMgc3RyaW5nLWJhc2VkIFR5cGVTeW1ib2xzIGluc3RlYWQgb2YgbnVtZXJpYyB0eXBlIElEc1xuICogRm9yIFNFQ1AyNTZLMSBUcmFuc2ZlciBPdXRwdXQsIHVzZSBUeXBlU3ltYm9scy5UcmFuc2Zlck91dHB1dCBmcm9tIEBmbGFyZW5ldHdvcmsvZmxhcmVqc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmZsYXJlLm5ldHdvcmsvIGZvciBGbGFyZSBuZXR3b3JrIGRvY3VtZW50YXRpb25cbiAqIEBkZXByZWNhdGVkIFVzZSBUeXBlU3ltYm9scy5UcmFuc2Zlck91dHB1dCBmcm9tIEBmbGFyZW5ldHdvcmsvZmxhcmVqcyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTRUNQMjU2SzFfVHJhbnNmZXJfT3V0cHV0ID0gNzsgLy8gTGVnYWN5IC0gRmxhcmVKUyB1c2VzIFR5cGVTeW1ib2xzLlRyYW5zZmVyT3V0cHV0XG5cbmV4cG9ydCBjb25zdCBBRERSRVNTX1NFUEFSQVRPUiA9ICd+JztcbmV4cG9ydCBjb25zdCBJTlBVVF9TRVBBUkFUT1IgPSAnOic7XG5cbi8vIEZsYXJlSlMgMS4zLjIgdHlwZSBkZWZpbml0aW9ucyAtIHVzaW5nIGF2bSBhbmQgcGxhdGZvcm12bSBtb2R1bGVzXG5leHBvcnQgdHlwZSBEZXByZWNhdGVkVHggPSB1bmtub3duOyAvLyBQbGFjZWhvbGRlciBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuZXhwb3J0IHR5cGUgRGVwcmVjYXRlZEJhc2VUeCA9IHVua25vd247IC8vIFBsYWNlaG9sZGVyIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG5leHBvcnQgdHlwZSBUeCA9IFVuc2lnbmVkVHg7IC8vIEZsYXJlSlMgVW5zaWduZWRUeCAodW5pZmllZCB0eXBlIGluIDQuMC41KVxuZXhwb3J0IHR5cGUgQmFzZVR4ID0gYXZheFNlcmlhbC5CYXNlVHg7IC8vIEZsYXJlSlMgQmFzZVR4XG5leHBvcnQgdHlwZSBBdmF4VHggPSBhdmF4U2VyaWFsLkF2YXhUeDsgLy8gRmxhcmVKUyBBdmF4VHhcbmV4cG9ydCB0eXBlIERlcHJlY2F0ZWRPdXRwdXQgPSB1bmtub3duOyAvLyBQbGFjZWhvbGRlciBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuZXhwb3J0IHR5cGUgT3V0cHV0ID0gVHJhbnNmZXJhYmxlT3V0cHV0OyAvLyBGbGFyZUpTIFRyYW5zZmVyYWJsZU91dHB1dCAodW5pZmllZCB0eXBlIGluIDQuMC41KVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.Utils = exports.KeyPair = void 0;
|
|
21
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
22
|
+
exports.Utils = utils_1.default;
|
|
23
|
+
__exportStar(require("./iface"), exports);
|
|
24
|
+
var keyPair_1 = require("./keyPair");
|
|
25
|
+
Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBR25CLGdCQUhGLGVBQUssQ0FHRTtBQUZkLDBDQUF3QjtBQUN4QixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCB7IFV0aWxzIH07XG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo-beta/sdk-core';
|
|
2
|
+
export declare enum addressFormat {
|
|
3
|
+
testnet = "fuji",
|
|
4
|
+
mainnet = "flr"
|
|
5
|
+
}
|
|
6
|
+
export declare class KeyPair extends Secp256k1ExtendedKeyPair {
|
|
7
|
+
/**
|
|
8
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
9
|
+
*
|
|
10
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
11
|
+
*/
|
|
12
|
+
constructor(source?: KeyPairOptions);
|
|
13
|
+
/**
|
|
14
|
+
* Build a keypair from a protocol private key or extended private key.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} prv A raw private key
|
|
17
|
+
*/
|
|
18
|
+
recordKeysFromPrivateKey(prv: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Build an ECPair from a protocol public key or extended public key.
|
|
21
|
+
*
|
|
22
|
+
* @param {string} pub A raw public key
|
|
23
|
+
*/
|
|
24
|
+
recordKeysFromPublicKey(pub: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Default keys format is a pair of Uint8Array keys
|
|
27
|
+
*
|
|
28
|
+
* @returns { DefaultKeys } The keys in the defined format
|
|
29
|
+
*/
|
|
30
|
+
getKeys(): DefaultKeys;
|
|
31
|
+
/**
|
|
32
|
+
* Get a Flare P-Chain public mainnet address
|
|
33
|
+
*
|
|
34
|
+
* @param {string} format - flare hrp selector: Mainnet(flr) or Testnet(fuji)
|
|
35
|
+
* @returns {string} The mainnet address derived from the public key
|
|
36
|
+
*/
|
|
37
|
+
getAddress(format?: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Get a public address of public key.
|
|
40
|
+
*
|
|
41
|
+
* @param {string} hrp - select Mainnet(flr) or Testnet(fuji) for the address
|
|
42
|
+
* @returns {string} The address derived from the public key and hrp
|
|
43
|
+
*/
|
|
44
|
+
getFlrPAddress(hrp: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Get a Flare P-Chain public mainnet address buffer
|
|
47
|
+
*
|
|
48
|
+
* @returns {Buffer} The address buffer derived from the public key
|
|
49
|
+
*/
|
|
50
|
+
private getAddressBuffer;
|
|
51
|
+
/**
|
|
52
|
+
* Use the safe Buffer instead of the regular buffer to derive the address buffer. Used in the OVC.
|
|
53
|
+
*
|
|
54
|
+
* @returns {Buffer}
|
|
55
|
+
*/
|
|
56
|
+
private getAddressSafeBuffer;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=keyPair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAMX,cAAc,EACd,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAQ9B,oBAAY,aAAa;IACvB,OAAO,SAAS;IAChB,OAAO,QAAQ;CAChB;AAED,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC;;;;OAIG;IACH,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAW3C;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAkB1C;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAOtB;;;;;OAKG;IACH,UAAU,CAAC,MAAM,SAAY,GAAG,MAAM;IAGtC;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKnC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
|
|
@@ -0,0 +1,144 @@
|
|
|
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.KeyPair = exports.addressFormat = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const create_hash_1 = __importDefault(require("create-hash"));
|
|
9
|
+
const safe_buffer_1 = require("safe-buffer");
|
|
10
|
+
const secp256k1_1 = require("@bitgo-beta/secp256k1");
|
|
11
|
+
const crypto_1 = require("crypto");
|
|
12
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
13
|
+
const DEFAULT_SEED_SIZE_BYTES = 16;
|
|
14
|
+
var addressFormat;
|
|
15
|
+
(function (addressFormat) {
|
|
16
|
+
addressFormat["testnet"] = "fuji";
|
|
17
|
+
addressFormat["mainnet"] = "flr";
|
|
18
|
+
})(addressFormat || (exports.addressFormat = addressFormat = {}));
|
|
19
|
+
class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
20
|
+
/**
|
|
21
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
22
|
+
*
|
|
23
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
24
|
+
*/
|
|
25
|
+
constructor(source) {
|
|
26
|
+
super(source);
|
|
27
|
+
if (!source) {
|
|
28
|
+
const seed = (0, crypto_1.randomBytes)(DEFAULT_SEED_SIZE_BYTES);
|
|
29
|
+
this.hdNode = secp256k1_1.bip32.fromSeed(seed);
|
|
30
|
+
}
|
|
31
|
+
else if ((0, sdk_core_1.isSeed)(source)) {
|
|
32
|
+
this.hdNode = secp256k1_1.bip32.fromSeed(source.seed);
|
|
33
|
+
}
|
|
34
|
+
else if ((0, sdk_core_1.isPrivateKey)(source)) {
|
|
35
|
+
this.recordKeysFromPrivateKey(source.prv);
|
|
36
|
+
}
|
|
37
|
+
else if ((0, sdk_core_1.isPublicKey)(source)) {
|
|
38
|
+
this.recordKeysFromPublicKey(source.pub);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new Error('Invalid key pair options');
|
|
42
|
+
}
|
|
43
|
+
if (this.hdNode) {
|
|
44
|
+
this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Build a keypair from a protocol private key or extended private key.
|
|
49
|
+
*
|
|
50
|
+
* @param {string} prv A raw private key
|
|
51
|
+
*/
|
|
52
|
+
recordKeysFromPrivateKey(prv) {
|
|
53
|
+
if (!utils_1.default.isValidPrivateKey(prv)) {
|
|
54
|
+
throw new Error('Unsupported private key');
|
|
55
|
+
}
|
|
56
|
+
if ((0, sdk_core_1.isValidXprv)(prv)) {
|
|
57
|
+
this.hdNode = secp256k1_1.bip32.fromBase58(prv);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.keyPair = secp256k1_1.ECPair.fromPrivateKey(Buffer.from(prv.slice(0, 64), 'hex'));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Build an ECPair from a protocol public key or extended public key.
|
|
65
|
+
*
|
|
66
|
+
* @param {string} pub A raw public key
|
|
67
|
+
*/
|
|
68
|
+
recordKeysFromPublicKey(pub) {
|
|
69
|
+
try {
|
|
70
|
+
if ((0, sdk_core_1.isValidXpub)(pub)) {
|
|
71
|
+
this.hdNode = secp256k1_1.bip32.fromBase58(pub);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.keyPair = secp256k1_1.ECPair.fromPublicKey(Buffer.from(pub, 'hex'));
|
|
75
|
+
}
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
try {
|
|
80
|
+
this.keyPair = secp256k1_1.ECPair.fromPublicKey(Buffer.from(utils_1.default.cb58Decode(pub)));
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
throw new Error('Unsupported public key');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Default keys format is a pair of Uint8Array keys
|
|
90
|
+
*
|
|
91
|
+
* @returns { DefaultKeys } The keys in the defined format
|
|
92
|
+
*/
|
|
93
|
+
getKeys() {
|
|
94
|
+
return {
|
|
95
|
+
pub: this.getPublicKey({ compressed: true }).toString('hex'),
|
|
96
|
+
prv: this.getPrivateKey()?.toString('hex'),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get a Flare P-Chain public mainnet address
|
|
101
|
+
*
|
|
102
|
+
* @param {string} format - flare hrp selector: Mainnet(flr) or Testnet(fuji)
|
|
103
|
+
* @returns {string} The mainnet address derived from the public key
|
|
104
|
+
*/
|
|
105
|
+
getAddress(format = 'mainnet') {
|
|
106
|
+
return this.getFlrPAddress(addressFormat[format]);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get a public address of public key.
|
|
110
|
+
*
|
|
111
|
+
* @param {string} hrp - select Mainnet(flr) or Testnet(fuji) for the address
|
|
112
|
+
* @returns {string} The address derived from the public key and hrp
|
|
113
|
+
*/
|
|
114
|
+
getFlrPAddress(hrp) {
|
|
115
|
+
const addressBuffer = Buffer.from(this.getAddressBuffer());
|
|
116
|
+
return utils_1.default.addressToString(hrp, 'P', addressBuffer);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get a Flare P-Chain public mainnet address buffer
|
|
120
|
+
*
|
|
121
|
+
* @returns {Buffer} The address buffer derived from the public key
|
|
122
|
+
*/
|
|
123
|
+
getAddressBuffer() {
|
|
124
|
+
try {
|
|
125
|
+
// Use the safe buffer method for address derivation
|
|
126
|
+
return this.getAddressSafeBuffer();
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
return this.getAddressSafeBuffer();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Use the safe Buffer instead of the regular buffer to derive the address buffer. Used in the OVC.
|
|
134
|
+
*
|
|
135
|
+
* @returns {Buffer}
|
|
136
|
+
*/
|
|
137
|
+
getAddressSafeBuffer() {
|
|
138
|
+
const publicKeySafe = safe_buffer_1.Buffer.from(this.keyPair.publicKey.toString('hex'), 'hex');
|
|
139
|
+
const sha256 = safe_buffer_1.Buffer.from((0, create_hash_1.default)('sha256').update(publicKeySafe).digest());
|
|
140
|
+
return Buffer.from((0, create_hash_1.default)('ripemd160').update(sha256).digest());
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.KeyPair = KeyPair;
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFTOEI7QUFDOUIsOERBQXFDO0FBQ3JDLDZDQUFtRDtBQUNuRCxxREFBc0Q7QUFDdEQsbUNBQXFDO0FBQ3JDLG9EQUE0QjtBQUU1QixNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUNuQyxJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDdkIsaUNBQWdCLENBQUE7SUFDaEIsZ0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsYUFBYSw2QkFBYixhQUFhLFFBR3hCO0FBRUQsTUFBYSxPQUFRLFNBQVEsbUNBQXdCO0lBQ25EOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsaUJBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksSUFBQSxpQkFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLElBQUksSUFBQSx1QkFBWSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBSSxJQUFBLHNCQUFXLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFD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QUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssb0JBQW9CO1FBQzFCLE1BQU0sYUFBYSxHQUFHLG9CQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRixNQUFNLE1BQU0sR0FBRyxvQkFBVSxDQUFDLElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUEscUJBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBQ0Y7QUF6SEQsMEJBeUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVmYXVsdEtleXMsXG4gIGlzUHJpdmF0ZUtleSxcbiAgaXNQdWJsaWNLZXksXG4gIGlzU2VlZCxcbiAgaXNWYWxpZFhwcnYsXG4gIGlzVmFsaWRYcHViLFxuICBLZXlQYWlyT3B0aW9ucyxcbiAgU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgY3JlYXRlSGFzaCBmcm9tICdjcmVhdGUtaGFzaCc7XG5pbXBvcnQgeyBCdWZmZXIgYXMgU2FmZUJ1ZmZlciB9IGZyb20gJ3NhZmUtYnVmZmVyJztcbmltcG9ydCB7IGJpcDMyLCBFQ1BhaXIgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBERUZBVUxUX1NFRURfU0laRV9CWVRFUyA9IDE2O1xuZXhwb3J0IGVudW0gYWRkcmVzc0Zvcm1hdCB7XG4gIHRlc3RuZXQgPSAnZnVqaScsXG4gIG1haW5uZXQgPSAnZmxyJyxcbn1cblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICBjb25zdCBzZWVkID0gcmFuZG9tQnl0ZXMoREVGQVVMVF9TRUVEX1NJWkVfQllURVMpO1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzU2VlZChzb3VyY2UpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNvdXJjZS5zZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzUHJpdmF0ZUtleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShzb3VyY2UucHJ2KTtcbiAgICB9IGVsc2UgaWYgKGlzUHVibGljS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkoc291cmNlLnB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGROb2RlKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIudG9LZXlQYWlyKHRoaXMuaGROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBrZXlwYWlyIGZyb20gYSBwcm90b2NvbCBwcml2YXRlIGtleSBvciBleHRlbmRlZCBwcml2YXRlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBydiBBIHJhdyBwcml2YXRlIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHBydjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShwcnYpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIGlmIChpc1ZhbGlkWHBydihwcnYpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHJ2KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21Qcml2YXRlS2V5KEJ1ZmZlci5mcm9tKHBydi5zbGljZSgwLCA2NCksICdoZXgnKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIEVDUGFpciBmcm9tIGEgcHJvdG9jb2wgcHVibGljIGtleSBvciBleHRlbmRlZCBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHViIEEgcmF3IHB1YmxpYyBrZXlcbiAgICovXG4gIHJlY29yZEtleXNGcm9tUHVibGljS2V5KHB1Yjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChpc1ZhbGlkWHB1YihwdWIpKSB7XG4gICAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbUJhc2U1OChwdWIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21QdWJsaWNLZXkoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMua2V5UGFpciA9IEVDUGFpci5mcm9tUHVibGljS2V5KEJ1ZmZlci5mcm9tKHV0aWxzLmNiNThEZWNvZGUocHViKSkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHVibGljIGtleScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGtleXMgZm9ybWF0IGlzIGEgcGFpciBvZiBVaW50OEFycmF5IGtleXNcbiAgICpcbiAgICogQHJldHVybnMgeyBEZWZhdWx0S2V5cyB9IFRoZSBrZXlzIGluIHRoZSBkZWZpbmVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkOiB0cnVlIH0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydjogdGhpcy5nZXRQcml2YXRlS2V5KCk/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIEZsYXJlIFAtQ2hhaW4gcHVibGljIG1haW5uZXQgYWRkcmVzc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gZmxhcmUgaHJwIHNlbGVjdG9yOiBNYWlubmV0KGZscikgb3IgVGVzdG5ldChmdWppKVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgbWFpbm5ldCBhZGRyZXNzIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleVxuICAgKi9cbiAgZ2V0QWRkcmVzcyhmb3JtYXQgPSAnbWFpbm5ldCcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEZsclBBZGRyZXNzKGFkZHJlc3NGb3JtYXRbZm9ybWF0XSk7XG4gIH1cbiAgLyoqXG4gICAqIEdldCBhIHB1YmxpYyBhZGRyZXNzIG9mIHB1YmxpYyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBocnAgLSBzZWxlY3QgTWFpbm5ldChmbHIpIG9yIFRlc3RuZXQoZnVqaSkgZm9yIHRoZSBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhZGRyZXNzIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleSBhbmQgaHJwXG4gICAqL1xuICBnZXRGbHJQQWRkcmVzcyhocnA6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYWRkcmVzc0J1ZmZlciA9IEJ1ZmZlci5mcm9tKHRoaXMuZ2V0QWRkcmVzc0J1ZmZlcigpKTtcbiAgICByZXR1cm4gdXRpbHMuYWRkcmVzc1RvU3RyaW5nKGhycCwgJ1AnLCBhZGRyZXNzQnVmZmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBGbGFyZSBQLUNoYWluIHB1YmxpYyBtYWlubmV0IGFkZHJlc3MgYnVmZmVyXG4gICAqXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IFRoZSBhZGRyZXNzIGJ1ZmZlciBkZXJpdmVkIGZyb20gdGhlIHB1YmxpYyBrZXlcbiAgICovXG4gIHByaXZhdGUgZ2V0QWRkcmVzc0J1ZmZlcigpOiBCdWZmZXIge1xuICAgIHRyeSB7XG4gICAgICAvLyBVc2UgdGhlIHNhZmUgYnVmZmVyIG1ldGhvZCBmb3IgYWRkcmVzcyBkZXJpdmF0aW9uXG4gICAgICByZXR1cm4gdGhpcy5nZXRBZGRyZXNzU2FmZUJ1ZmZlcigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBZGRyZXNzU2FmZUJ1ZmZlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhlIHNhZmUgQnVmZmVyIGluc3RlYWQgb2YgdGhlIHJlZ3VsYXIgYnVmZmVyIHRvIGRlcml2ZSB0aGUgYWRkcmVzcyBidWZmZXIuIFVzZWQgaW4gdGhlIE9WQy5cbiAgICpcbiAgICogQHJldHVybnMge0J1ZmZlcn1cbiAgICovXG4gIHByaXZhdGUgZ2V0QWRkcmVzc1NhZmVCdWZmZXIoKTogQnVmZmVyIHtcbiAgICBjb25zdCBwdWJsaWNLZXlTYWZlID0gU2FmZUJ1ZmZlci5mcm9tKHRoaXMua2V5UGFpci5wdWJsaWNLZXkudG9TdHJpbmcoJ2hleCcpLCAnaGV4Jyk7XG4gICAgY29uc3Qgc2hhMjU2ID0gU2FmZUJ1ZmZlci5mcm9tKGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShwdWJsaWNLZXlTYWZlKS5kaWdlc3QoKSk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNyZWF0ZUhhc2goJ3JpcGVtZDE2MCcpLnVwZGF0ZShzaGEyNTYpLmRpZ2VzdCgpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { TransferableOutput } from '@flarenetwork/flarejs';
|
|
2
|
+
import { BaseUtils, Entry } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { FlareNetwork } from '@bitgo-beta/statics';
|
|
4
|
+
import { DeprecatedOutput, DeprecatedTx, Output } from './iface';
|
|
5
|
+
export declare class Utils implements BaseUtils {
|
|
6
|
+
includeIn(walletAddresses: string[], otxoOutputAddresses: string[]): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Checks if it is a valid address no illegal characters
|
|
9
|
+
*
|
|
10
|
+
* @param {string} address - address to be validated
|
|
11
|
+
* @returns {boolean} - the validation result
|
|
12
|
+
*/
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
isValidAddress(address: string | string[]): boolean;
|
|
15
|
+
private isValidAddressRegex;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if it is a valid blockId with length 66 including 0x
|
|
18
|
+
*
|
|
19
|
+
* @param {string} hash - blockId to be validated
|
|
20
|
+
* @returns {boolean} - the validation result
|
|
21
|
+
*/
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
isValidBlockId(hash: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Checks if the string is a valid protocol public key or
|
|
26
|
+
* extended public key.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} pub - the public key to be validated
|
|
29
|
+
* @returns {boolean} - the validation result
|
|
30
|
+
*/
|
|
31
|
+
isValidPublicKey(pub: string): boolean;
|
|
32
|
+
parseAddress: (pub: string) => Buffer;
|
|
33
|
+
/**
|
|
34
|
+
* Returns whether or not the string is a valid protocol private key, or extended
|
|
35
|
+
* private key.
|
|
36
|
+
*
|
|
37
|
+
* The protocol key format is described in the @stacks/transactions npm package, in the
|
|
38
|
+
* createStacksPrivateKey function:
|
|
39
|
+
* https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/keys.ts#L125
|
|
40
|
+
*
|
|
41
|
+
* @param {string} prv - the private key (or extended private key) to be validated
|
|
42
|
+
* @returns {boolean} - the validation result
|
|
43
|
+
*/
|
|
44
|
+
isValidPrivateKey(prv: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Returns whether or not the string is a composed of hex chars only
|
|
47
|
+
*
|
|
48
|
+
* @param {string} maybe - the string to be validated
|
|
49
|
+
* @returns {boolean} - the validation result
|
|
50
|
+
*/
|
|
51
|
+
allHexChars(maybe: string): boolean;
|
|
52
|
+
/** @inheritdoc */
|
|
53
|
+
isValidSignature(signature: string): boolean;
|
|
54
|
+
/** @inheritdoc */
|
|
55
|
+
isValidTransactionId(txId: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* FlareJS wrapper to create signature and return it for credentials
|
|
58
|
+
* @param network
|
|
59
|
+
* @param message
|
|
60
|
+
* @param prv
|
|
61
|
+
* @return signature
|
|
62
|
+
*/
|
|
63
|
+
createSignature(network: FlareNetwork, message: Buffer, prv: Buffer): Buffer;
|
|
64
|
+
/**
|
|
65
|
+
* FlareJS wrapper to verify signature
|
|
66
|
+
* @param network
|
|
67
|
+
* @param message
|
|
68
|
+
* @param signature
|
|
69
|
+
* @param publicKey - public key instead of private key for verification
|
|
70
|
+
* @return true if it's verify successful
|
|
71
|
+
*/
|
|
72
|
+
verifySignature(network: FlareNetwork, message: Buffer, signature: Buffer, publicKey: Buffer): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* FlareJS wrapper to recover signature
|
|
75
|
+
* @param network
|
|
76
|
+
* @param message
|
|
77
|
+
* @param signature
|
|
78
|
+
* @return recovered public key
|
|
79
|
+
*/
|
|
80
|
+
recoverySignature(network: FlareNetwork, message: Buffer, signature: Buffer): Buffer;
|
|
81
|
+
sha256(buf: Uint8Array): Buffer;
|
|
82
|
+
/**
|
|
83
|
+
* Check the raw transaction has a valid format in the blockchain context, throw otherwise.
|
|
84
|
+
* It's to reuse in TransactionBuilder and TransactionBuilderFactory
|
|
85
|
+
*
|
|
86
|
+
* @param rawTransaction Transaction as hex string
|
|
87
|
+
*/
|
|
88
|
+
validateRawTransaction(rawTransaction: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Check if tx is for the blockchainId
|
|
91
|
+
*
|
|
92
|
+
* @param {DeprecatedTx} tx
|
|
93
|
+
* @param {string} blockchainId
|
|
94
|
+
* @returns true if tx is for blockchainId
|
|
95
|
+
*/
|
|
96
|
+
isTransactionOf(tx: DeprecatedTx, blockchainId: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Check if Output is from PVM.
|
|
99
|
+
* Output could be EVM or PVM output.
|
|
100
|
+
* @param {DeprecatedOutput} output
|
|
101
|
+
* @returns {boolean} output has transferable output structure
|
|
102
|
+
*/
|
|
103
|
+
deprecatedIsTransferableOutput(output: DeprecatedOutput): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Check if Output is from PVM.
|
|
106
|
+
* Output could be EVM or PVM output.
|
|
107
|
+
* @param {Output} output
|
|
108
|
+
* @returns {boolean} output is TransferableOutput
|
|
109
|
+
*/
|
|
110
|
+
isTransferableOutput(output: Output): output is TransferableOutput;
|
|
111
|
+
/**
|
|
112
|
+
* Return a mapper function to that network address representation.
|
|
113
|
+
* @param network required to stringify addresses
|
|
114
|
+
* @return mapper function
|
|
115
|
+
*/
|
|
116
|
+
deprecatedMapOutputToEntry(network: FlareNetwork): (output: DeprecatedOutput) => Entry;
|
|
117
|
+
/**
|
|
118
|
+
* Return a mapper function to that network address representation.
|
|
119
|
+
* @param network required to stringify addresses
|
|
120
|
+
* @return mapper function
|
|
121
|
+
*/
|
|
122
|
+
mapOutputToEntry(network: FlareNetwork): (Output: any) => Entry;
|
|
123
|
+
/**
|
|
124
|
+
* remove hex prefix (0x)
|
|
125
|
+
* @param hex string
|
|
126
|
+
* @returns hex without 0x
|
|
127
|
+
*/
|
|
128
|
+
removeHexPrefix(hex: string): string;
|
|
129
|
+
/**
|
|
130
|
+
* Outputidx convert from number (as string) to buffer.
|
|
131
|
+
* @param {string} outputidx number
|
|
132
|
+
* @return {Buffer} buffer of size 4 with that number value
|
|
133
|
+
*/
|
|
134
|
+
outputidxNumberToBuffer(outputidx: string): Buffer;
|
|
135
|
+
/**
|
|
136
|
+
* Outputidx buffer to number (as string)
|
|
137
|
+
* @param {Buffer} outputidx
|
|
138
|
+
* @return {string} outputidx number
|
|
139
|
+
*/
|
|
140
|
+
outputidxBufferToNumber(outputidx: Buffer): string;
|
|
141
|
+
/**
|
|
142
|
+
* CB58 decode function - simple Base58 decode implementation
|
|
143
|
+
* @param {string} data - CB58 encoded string
|
|
144
|
+
* @returns {Buffer} decoded buffer
|
|
145
|
+
*/
|
|
146
|
+
cb58Decode(data: string): Buffer;
|
|
147
|
+
/**
|
|
148
|
+
* Convert address buffer to bech32 string
|
|
149
|
+
* @param {string} hrp - Human readable part
|
|
150
|
+
* @param {string} chainid - Chain identifier
|
|
151
|
+
* @param {Buffer} addressBuffer - Address buffer
|
|
152
|
+
* @returns {string} Address string
|
|
153
|
+
*/
|
|
154
|
+
addressToString(hrp: string, chainid: string, addressBuffer: Buffer): string;
|
|
155
|
+
}
|
|
156
|
+
declare const utils: Utils;
|
|
157
|
+
export default utils;
|
|
158
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,SAAS,EACT,KAAK,EAMN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAcjE,qBAAa,KAAM,YAAW,SAAS;IAC9B,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,OAAO;IAInF;;;;;OAKG;IACH,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO;IAYnD,OAAO,CAAC,mBAAmB;IAI3B;;;;;OAKG;IACH,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUrC;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAwC/B,YAAY,QAAS,MAAM,KAAG,MAAM,CAGzC;IAEF;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAiBvC;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAU5E;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAQtG;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAUpF,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAI/B;;;;;OAKG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAahE;;;;;OAKG;IACH,8BAA8B,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAIjE;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,kBAAkB;IAIlE;;;;OAIG;IACH,0BAA0B,CAAC,OAAO,EAAE,YAAY,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,KAAK;IA4BtF;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,CAAC,MAAM,KAAA,KAAK,KAAK;IAmB1D;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOpC;;;;OAIG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIlD;;;;OAIG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIlD;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAWhC;;;;;;OAMG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;CAI7E;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|