@bitgo-beta/sdk-coin-flrp 0.0.0-semantic-release-managed

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.json +7 -0
  3. package/.mocharc.yml +8 -0
  4. package/CHANGELOG.md +0 -0
  5. package/LICENSE +191 -0
  6. package/dist/src/flrp.d.ts +91 -0
  7. package/dist/src/flrp.d.ts.map +1 -0
  8. package/dist/src/flrp.js +343 -0
  9. package/dist/src/iface.d.ts +25 -0
  10. package/dist/src/iface.d.ts.map +1 -0
  11. package/dist/src/iface.js +3 -0
  12. package/dist/src/index.d.ts +6 -0
  13. package/dist/src/index.d.ts.map +1 -0
  14. package/dist/src/index.js +45 -0
  15. package/dist/src/lib/atomicInCTransactionBuilder.d.ts +26 -0
  16. package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -0
  17. package/dist/src/lib/atomicInCTransactionBuilder.js +64 -0
  18. package/dist/src/lib/atomicTransactionBuilder.d.ts +93 -0
  19. package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/atomicTransactionBuilder.js +252 -0
  21. package/dist/src/lib/constants.d.ts +11 -0
  22. package/dist/src/lib/constants.d.ts.map +1 -0
  23. package/dist/src/lib/constants.js +17 -0
  24. package/dist/src/lib/errors.d.ts +8 -0
  25. package/dist/src/lib/errors.d.ts.map +1 -0
  26. package/dist/src/lib/errors.js +19 -0
  27. package/dist/src/lib/exportInCTxBuilder.d.ts +77 -0
  28. package/dist/src/lib/exportInCTxBuilder.d.ts.map +1 -0
  29. package/dist/src/lib/exportInCTxBuilder.js +170 -0
  30. package/dist/src/lib/exportInPTxBuilder.d.ts +30 -0
  31. package/dist/src/lib/exportInPTxBuilder.d.ts.map +1 -0
  32. package/dist/src/lib/exportInPTxBuilder.js +56 -0
  33. package/dist/src/lib/iface.d.ts +119 -0
  34. package/dist/src/lib/iface.d.ts.map +1 -0
  35. package/dist/src/lib/iface.js +22 -0
  36. package/dist/src/lib/index.d.ts +7 -0
  37. package/dist/src/lib/index.d.ts.map +1 -0
  38. package/dist/src/lib/index.js +30 -0
  39. package/dist/src/lib/keyPair.d.ts +58 -0
  40. package/dist/src/lib/keyPair.d.ts.map +1 -0
  41. package/dist/src/lib/keyPair.js +142 -0
  42. package/dist/src/lib/transaction.d.ts +111 -0
  43. package/dist/src/lib/transaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction.js +321 -0
  45. package/dist/src/lib/transactionBuilderFactory.d.ts +37 -0
  46. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  47. package/dist/src/lib/transactionBuilderFactory.js +91 -0
  48. package/dist/src/lib/utils.d.ts +215 -0
  49. package/dist/src/lib/utils.d.ts.map +1 -0
  50. package/dist/src/lib/utils.js +487 -0
  51. package/dist/src/register.d.ts +3 -0
  52. package/dist/src/register.d.ts.map +1 -0
  53. package/dist/src/register.js +11 -0
  54. package/dist/src/tflrp.d.ts +8 -0
  55. package/dist/src/tflrp.d.ts.map +1 -0
  56. package/dist/src/tflrp.js +14 -0
  57. package/dist/test/unit/flrp.d.ts +2 -0
  58. package/dist/test/unit/flrp.d.ts.map +1 -0
  59. package/dist/test/unit/flrp.js +118 -0
  60. package/dist/test/unit/lib/atomicTransactionBuilder.d.ts +2 -0
  61. package/dist/test/unit/lib/atomicTransactionBuilder.d.ts.map +1 -0
  62. package/dist/test/unit/lib/atomicTransactionBuilder.js +222 -0
  63. package/dist/test/unit/lib/exportTxBuilder.d.ts +2 -0
  64. package/dist/test/unit/lib/exportTxBuilder.d.ts.map +1 -0
  65. package/dist/test/unit/lib/exportTxBuilder.js +45 -0
  66. package/dist/test/unit/lib/transaction.d.ts +2 -0
  67. package/dist/test/unit/lib/transaction.d.ts.map +1 -0
  68. package/dist/test/unit/lib/transaction.js +460 -0
  69. package/dist/test/unit/lib/utils.d.ts +2 -0
  70. package/dist/test/unit/lib/utils.d.ts.map +1 -0
  71. package/dist/test/unit/lib/utils.js +286 -0
  72. package/dist/test/unit/smoke.d.ts +2 -0
  73. package/dist/test/unit/smoke.d.ts.map +1 -0
  74. package/dist/test/unit/smoke.js +23 -0
  75. package/dist/tsconfig.tsbuildinfo +1 -0
  76. package/package.json +57 -0
@@ -0,0 +1,37 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { AtomicTransactionBuilder } from './atomicTransactionBuilder';
4
+ export declare class ExportTxBuilder extends AtomicTransactionBuilder {
5
+ protected get transactionType(): TransactionType;
6
+ constructor(coinConfig: Readonly<CoinConfig>);
7
+ }
8
+ export declare class ImportTxBuilder extends AtomicTransactionBuilder {
9
+ protected get transactionType(): TransactionType;
10
+ constructor(coinConfig: Readonly<CoinConfig>);
11
+ }
12
+ export declare class ValidatorTxBuilder extends AtomicTransactionBuilder {
13
+ protected get transactionType(): TransactionType;
14
+ constructor(coinConfig: Readonly<CoinConfig>);
15
+ }
16
+ export declare class DelegatorTxBuilder extends AtomicTransactionBuilder {
17
+ protected get transactionType(): TransactionType;
18
+ constructor(coinConfig: Readonly<CoinConfig>);
19
+ }
20
+ /**
21
+ * Factory for Flare P-chain transaction builders
22
+ */
23
+ export declare class TransactionBuilderFactory {
24
+ protected _coinConfig: Readonly<CoinConfig>;
25
+ constructor(coinConfig: Readonly<CoinConfig>);
26
+ /**
27
+ * Create a transaction builder from a hex string
28
+ * @param txHex - Transaction hex string
29
+ */
30
+ from(txHex: string): AtomicTransactionBuilder;
31
+ /**
32
+ * Create a transaction builder for a specific type
33
+ * @param type - Transaction type
34
+ */
35
+ getBuilder(type: TransactionType): AtomicTransactionBuilder;
36
+ }
37
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAuB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;gBAEW,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI7C;AAED,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;gBAEW,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI7C;AAED,qBAAa,kBAAmB,SAAQ,wBAAwB;IAC9D,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;gBAEW,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI7C;AAED,qBAAa,kBAAmB,SAAQ,wBAAwB;IAC9D,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;gBAEW,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI7C;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEhC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB;IAiB7C;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,wBAAwB;CAc5D"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionBuilderFactory = exports.DelegatorTxBuilder = exports.ValidatorTxBuilder = exports.ImportTxBuilder = exports.ExportTxBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
6
+ // Placeholder builders - basic implementations for testing
7
+ class ExportTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
8
+ get transactionType() {
9
+ return sdk_core_1.TransactionType.Export;
10
+ }
11
+ constructor(coinConfig) {
12
+ super(coinConfig);
13
+ // Don't throw error, allow placeholder functionality
14
+ }
15
+ }
16
+ exports.ExportTxBuilder = ExportTxBuilder;
17
+ class ImportTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.Import;
20
+ }
21
+ constructor(coinConfig) {
22
+ super(coinConfig);
23
+ // Don't throw error, allow placeholder functionality
24
+ }
25
+ }
26
+ exports.ImportTxBuilder = ImportTxBuilder;
27
+ class ValidatorTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
28
+ get transactionType() {
29
+ return sdk_core_1.TransactionType.AddValidator;
30
+ }
31
+ constructor(coinConfig) {
32
+ super(coinConfig);
33
+ // Don't throw error, allow placeholder functionality
34
+ }
35
+ }
36
+ exports.ValidatorTxBuilder = ValidatorTxBuilder;
37
+ class DelegatorTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
38
+ get transactionType() {
39
+ return sdk_core_1.TransactionType.AddDelegator;
40
+ }
41
+ constructor(coinConfig) {
42
+ super(coinConfig);
43
+ // Don't throw error, allow placeholder functionality
44
+ }
45
+ }
46
+ exports.DelegatorTxBuilder = DelegatorTxBuilder;
47
+ /**
48
+ * Factory for Flare P-chain transaction builders
49
+ */
50
+ class TransactionBuilderFactory {
51
+ constructor(coinConfig) {
52
+ this._coinConfig = coinConfig;
53
+ }
54
+ /**
55
+ * Create a transaction builder from a hex string
56
+ * @param txHex - Transaction hex string
57
+ */
58
+ from(txHex) {
59
+ // TODO: Parse the hex and determine transaction type, then return appropriate builder
60
+ // For now, return a basic export builder as that's the most common use case
61
+ if (!txHex) {
62
+ throw new Error('Transaction hex is required');
63
+ }
64
+ // Create a mock export builder for now
65
+ // In the future, this will parse the transaction and determine the correct type
66
+ const builder = new ExportTxBuilder(this._coinConfig);
67
+ // Initialize with the hex data (placeholder)
68
+ builder.initBuilder({ txHex });
69
+ return builder;
70
+ }
71
+ /**
72
+ * Create a transaction builder for a specific type
73
+ * @param type - Transaction type
74
+ */
75
+ getBuilder(type) {
76
+ switch (type) {
77
+ case sdk_core_1.TransactionType.Export:
78
+ return new ExportTxBuilder(this._coinConfig);
79
+ case sdk_core_1.TransactionType.Import:
80
+ return new ImportTxBuilder(this._coinConfig);
81
+ case sdk_core_1.TransactionType.AddValidator:
82
+ return new ValidatorTxBuilder(this._coinConfig);
83
+ case sdk_core_1.TransactionType.AddDelegator:
84
+ return new DelegatorTxBuilder(this._coinConfig);
85
+ default:
86
+ throw new sdk_core_1.NotImplementedError(`Transaction type ${type} not supported`);
87
+ }
88
+ }
89
+ }
90
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBNEU7QUFDNUUseUVBQXNFO0FBRXRFLDJEQUEyRDtBQUMzRCxNQUFhLGVBQWdCLFNBQVEsbURBQXdCO0lBQzNELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixxREFBcUQ7SUFDdkQsQ0FBQztDQUNGO0FBVEQsMENBU0M7QUFFRCxNQUFhLGVBQWdCLFNBQVEsbURBQXdCO0lBQzNELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixxREFBcUQ7SUFDdkQsQ0FBQztDQUNGO0FBVEQsMENBU0M7QUFFRCxNQUFhLGtCQUFtQixTQUFRLG1EQUF3QjtJQUM5RCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIscURBQXFEO0lBQ3ZELENBQUM7Q0FDRjtBQVRELGdEQVNDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxtREFBd0I7SUFDOUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxZQUFZLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLHFEQUFxRDtJQUN2RCxDQUFDO0NBQ0Y7QUFURCxnREFTQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx5QkFBeUI7SUFHcEMsWUFBWSxVQUFnQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEtBQWE7UUFDaEIsc0ZBQXNGO1FBQ3RGLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELHVDQUF1QztRQUN2QyxnRkFBZ0Y7UUFDaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRELDZDQUE2QztRQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUUvQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQXFCO1FBQzlCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLDBCQUFlLENBQUMsTUFBTTtnQkFDekIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0MsS0FBSywwQkFBZSxDQUFDLE1BQU07Z0JBQ3pCLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLEtBQUssMEJBQWUsQ0FBQyxZQUFZO2dCQUMvQixPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELEtBQUssMEJBQWUsQ0FBQyxZQUFZO2dCQUMvQixPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xEO2dCQUNFLE1BQU0sSUFBSSw4QkFBbUIsQ0FBQyxvQkFBb0IsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE5Q0QsOERBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuXG4vLyBQbGFjZWhvbGRlciBidWlsZGVycyAtIGJhc2ljIGltcGxlbWVudGF0aW9ucyBmb3IgdGVzdGluZ1xuZXhwb3J0IGNsYXNzIEV4cG9ydFR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5FeHBvcnQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEltcG9ydFR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5JbXBvcnQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvclR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGRWYWxpZGF0b3I7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGVnYXRvclR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGREZWxlZ2F0b3I7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZvciBGbGFyZSBQLWNoYWluIHRyYW5zYWN0aW9uIGJ1aWxkZXJzXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHRoaXMuX2NvaW5Db25maWcgPSBjb2luQ29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZnJvbSBhIGhleCBzdHJpbmdcbiAgICogQHBhcmFtIHR4SGV4IC0gVHJhbnNhY3Rpb24gaGV4IHN0cmluZ1xuICAgKi9cbiAgZnJvbSh0eEhleDogc3RyaW5nKTogQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICAvLyBUT0RPOiBQYXJzZSB0aGUgaGV4IGFuZCBkZXRlcm1pbmUgdHJhbnNhY3Rpb24gdHlwZSwgdGhlbiByZXR1cm4gYXBwcm9wcmlhdGUgYnVpbGRlclxuICAgIC8vIEZvciBub3csIHJldHVybiBhIGJhc2ljIGV4cG9ydCBidWlsZGVyIGFzIHRoYXQncyB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2VcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIGhleCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIG1vY2sgZXhwb3J0IGJ1aWxkZXIgZm9yIG5vd1xuICAgIC8vIEluIHRoZSBmdXR1cmUsIHRoaXMgd2lsbCBwYXJzZSB0aGUgdHJhbnNhY3Rpb24gYW5kIGRldGVybWluZSB0aGUgY29ycmVjdCB0eXBlXG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBFeHBvcnRUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggdGhlIGhleCBkYXRhIChwbGFjZWhvbGRlcilcbiAgICBidWlsZGVyLmluaXRCdWlsZGVyKHsgdHhIZXggfSk7XG5cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBhIHNwZWNpZmljIHR5cGVcbiAgICogQHBhcmFtIHR5cGUgLSBUcmFuc2FjdGlvbiB0eXBlXG4gICAqL1xuICBnZXRCdWlsZGVyKHR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5FeHBvcnQ6XG4gICAgICAgIHJldHVybiBuZXcgRXhwb3J0VHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuSW1wb3J0OlxuICAgICAgICByZXR1cm4gbmV3IEltcG9ydFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZFZhbGlkYXRvcjpcbiAgICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0b3JUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5BZGREZWxlZ2F0b3I6XG4gICAgICAgIHJldHVybiBuZXcgRGVsZWdhdG9yVHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoYFRyYW5zYWN0aW9uIHR5cGUgJHt0eXBlfSBub3Qgc3VwcG9ydGVkYCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,215 @@
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
+ /**
53
+ * Lightweight Ethereum address validation
54
+ * Validates that an address is a 40-character hex string (optionally prefixed with 0x)
55
+ *
56
+ * @param {string} address - the Ethereum address to validate
57
+ * @returns {boolean} - true if valid Ethereum address format
58
+ */
59
+ isValidEthereumAddress(address: string): boolean;
60
+ /**
61
+ * Pick specific properties from an object (replaces lodash.pick)
62
+ *
63
+ * @param {T} obj - the source object
64
+ * @param {K[]} keys - array of property keys to pick
65
+ * @returns {Pick<T, K>} - new object with only the specified properties
66
+ */
67
+ pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
68
+ /**
69
+ * Deep equality comparison (replaces lodash.isEqual)
70
+ *
71
+ * @param {unknown} a - first value to compare
72
+ * @param {unknown} b - second value to compare
73
+ * @returns {boolean} - true if values are deeply equal
74
+ */
75
+ isEqual(a: unknown, b: unknown): boolean;
76
+ /** @inheritdoc */
77
+ isValidSignature(signature: string): boolean;
78
+ /** @inheritdoc */
79
+ isValidTransactionId(txId: string): boolean;
80
+ /**
81
+ * FlareJS wrapper to create signature and return it for credentials
82
+ * @param network
83
+ * @param message
84
+ * @param prv
85
+ * @return signature
86
+ */
87
+ createSignature(network: FlareNetwork, message: Buffer, prv: Buffer): Buffer;
88
+ /**
89
+ * FlareJS wrapper to verify signature
90
+ * @param network
91
+ * @param message
92
+ * @param signature
93
+ * @param publicKey - public key instead of private key for verification
94
+ * @return true if it's verify successful
95
+ */
96
+ verifySignature(network: FlareNetwork, message: Buffer, signature: Buffer, publicKey: Buffer): boolean;
97
+ /**
98
+ * FlareJS wrapper to recover signature
99
+ * @param network
100
+ * @param message
101
+ * @param signature
102
+ * @return recovered public key
103
+ */
104
+ recoverySignature(network: FlareNetwork, message: Buffer, signature: Buffer): Buffer;
105
+ sha256(buf: Uint8Array): Buffer;
106
+ /**
107
+ * Check the raw transaction has a valid format in the blockchain context, throw otherwise.
108
+ * It's to reuse in TransactionBuilder and TransactionBuilderFactory
109
+ *
110
+ * @param rawTransaction Transaction as hex string
111
+ */
112
+ validateRawTransaction(rawTransaction: string): void;
113
+ /**
114
+ * Check if tx is for the blockchainId
115
+ *
116
+ * @param {DeprecatedTx} tx
117
+ * @param {string} blockchainId
118
+ * @returns true if tx is for blockchainId
119
+ */
120
+ isTransactionOf(tx: DeprecatedTx, blockchainId: string): boolean;
121
+ /**
122
+ * Check if Output is from PVM.
123
+ * Output could be EVM or PVM output.
124
+ * @param {DeprecatedOutput} output
125
+ * @returns {boolean} output has transferable output structure
126
+ */
127
+ deprecatedIsTransferableOutput(output: DeprecatedOutput): boolean;
128
+ /**
129
+ * Check if Output is from PVM.
130
+ * Output could be EVM or PVM output.
131
+ * @param {Output} output
132
+ * @returns {boolean} output is TransferableOutput
133
+ */
134
+ isTransferableOutput(output: Output): output is TransferableOutput;
135
+ /**
136
+ * Return a mapper function to that network address representation.
137
+ * @param network required to stringify addresses
138
+ * @return mapper function
139
+ */
140
+ deprecatedMapOutputToEntry(network: FlareNetwork): (output: DeprecatedOutput) => Entry;
141
+ /**
142
+ * Return a mapper function to that network address representation.
143
+ * @param network required to stringify addresses
144
+ * @return mapper function
145
+ */
146
+ mapOutputToEntry(network: FlareNetwork): (Output: any) => Entry;
147
+ /**
148
+ * remove hex prefix (0x)
149
+ * @param hex string
150
+ * @returns hex without 0x
151
+ */
152
+ removeHexPrefix(hex: string): string;
153
+ /**
154
+ * Outputidx convert from number (as string) to buffer.
155
+ * @param {string} outputidx number
156
+ * @return {Buffer} buffer of size 4 with that number value
157
+ */
158
+ outputidxNumberToBuffer(outputidx: string): Buffer;
159
+ /**
160
+ * Outputidx buffer to number (as string)
161
+ * @param {Buffer} outputidx
162
+ * @return {string} outputidx number
163
+ */
164
+ outputidxBufferToNumber(outputidx: Buffer): string;
165
+ /**
166
+ * CB58 decode function - simple Base58 decode implementation
167
+ * @param {string} data - CB58 encoded string
168
+ * @returns {Buffer} decoded buffer
169
+ */
170
+ cb58Decode(data: string): Buffer;
171
+ /**
172
+ * Convert address buffer to bech32 string
173
+ * @param {string} hrp - Human readable part
174
+ * @param {string} chainid - Chain identifier
175
+ * @param {Buffer} addressBuffer - Address buffer
176
+ * @returns {string} Address string
177
+ */
178
+ addressToString(hrp: string, chainid: string, addressBuffer: Buffer): string;
179
+ /**
180
+ * Convert string to bytes for FlareJS memo
181
+ * Follows FlareJS utils.stringToBytes pattern
182
+ * @param {string} text - Text to convert
183
+ * @returns {Uint8Array} Byte array
184
+ */
185
+ stringToBytes(text: string): Uint8Array;
186
+ /**
187
+ * Convert bytes to string from FlareJS memo
188
+ * @param {Uint8Array} bytes - Bytes to convert
189
+ * @returns {string} Decoded string
190
+ */
191
+ bytesToString(bytes: Uint8Array): string;
192
+ /**
193
+ * Create memo bytes from various input formats
194
+ * Supports string, JSON object, or raw bytes
195
+ * @param {string | Record<string, unknown> | Uint8Array} memo - Memo data
196
+ * @returns {Uint8Array} Memo bytes for FlareJS
197
+ */
198
+ createMemoBytes(memo: string | Record<string, unknown> | Uint8Array): Uint8Array;
199
+ /**
200
+ * Parse memo bytes to string
201
+ * @param {Uint8Array} memoBytes - Memo bytes from FlareJS transaction
202
+ * @returns {string} Decoded memo string
203
+ */
204
+ parseMemoBytes(memoBytes: Uint8Array): string;
205
+ /**
206
+ * Validate memo size (FlareJS has transaction size limits)
207
+ * @param {Uint8Array} memoBytes - Memo bytes
208
+ * @param {number} maxSize - Maximum size in bytes (default 4KB)
209
+ * @returns {boolean} Whether memo is within size limits
210
+ */
211
+ validateMemoSize(memoBytes: Uint8Array, maxSize?: number): boolean;
212
+ }
213
+ declare const utils: Utils;
214
+ export default utils;
215
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}