@bitgo/sdk-coin-avaxp 0.2.0-dev.1 → 1.0.1-rc.2

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 (69) hide show
  1. package/CHANGELOG.md +218 -0
  2. package/README.md +39 -0
  3. package/dist/src/avaxp.d.ts +60 -0
  4. package/dist/src/avaxp.d.ts.map +1 -0
  5. package/dist/src/avaxp.js +175 -0
  6. package/dist/src/iface.d.ts +20 -41
  7. package/dist/src/iface.d.ts.map +1 -1
  8. package/dist/src/iface.js +1 -15
  9. package/dist/src/index.d.ts +4 -18
  10. package/dist/src/index.d.ts.map +1 -1
  11. package/dist/src/index.js +9 -28
  12. package/dist/src/{delegatorTxBuilder.d.ts → lib/delegatorTxBuilder.d.ts} +21 -6
  13. package/dist/src/lib/delegatorTxBuilder.d.ts.map +1 -0
  14. package/dist/src/lib/delegatorTxBuilder.js +240 -0
  15. package/dist/src/{errors.d.ts → lib/errors.d.ts} +0 -0
  16. package/dist/src/lib/errors.d.ts.map +1 -0
  17. package/dist/src/lib/errors.js +19 -0
  18. package/dist/src/lib/iface.d.ts +42 -0
  19. package/dist/src/lib/iface.d.ts.map +1 -0
  20. package/dist/src/lib/iface.js +12 -0
  21. package/dist/src/lib/index.d.ts +9 -0
  22. package/dist/src/lib/index.d.ts.map +1 -0
  23. package/dist/src/lib/index.js +29 -0
  24. package/dist/src/{keyPair.d.ts → lib/keyPair.d.ts} +13 -2
  25. package/dist/src/lib/keyPair.d.ts.map +1 -0
  26. package/dist/src/lib/keyPair.js +156 -0
  27. package/dist/src/lib/transaction.d.ts +73 -0
  28. package/dist/src/lib/transaction.d.ts.map +1 -0
  29. package/dist/src/lib/transaction.js +247 -0
  30. package/dist/src/{transactionBuilder.d.ts → lib/transactionBuilder.d.ts} +25 -22
  31. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  32. package/dist/src/lib/transactionBuilder.js +181 -0
  33. package/dist/src/{transactionBuilderFactory.d.ts → lib/transactionBuilderFactory.d.ts} +3 -4
  34. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  35. package/dist/src/lib/transactionBuilderFactory.js +50 -0
  36. package/dist/src/{transferBuilder.d.ts → lib/transferBuilder.d.ts} +0 -0
  37. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  38. package/dist/src/lib/transferBuilder.js +31 -0
  39. package/dist/src/lib/utils.d.ts +130 -0
  40. package/dist/src/lib/utils.d.ts.map +1 -0
  41. package/dist/src/lib/utils.js +257 -0
  42. package/dist/src/{validatorTxBuilder.d.ts → lib/validatorTxBuilder.d.ts} +11 -3
  43. package/dist/src/lib/validatorTxBuilder.d.ts.map +1 -0
  44. package/dist/src/lib/validatorTxBuilder.js +73 -0
  45. package/dist/src/tavaxp.d.ts +9 -0
  46. package/dist/src/tavaxp.d.ts.map +1 -0
  47. package/dist/src/tavaxp.js +14 -0
  48. package/dist/tsconfig.tsbuildinfo +973 -2827
  49. package/package.json +15 -10
  50. package/dist/src/delegatorTxBuilder.d.ts.map +0 -1
  51. package/dist/src/delegatorTxBuilder.js +0 -183
  52. package/dist/src/errors.d.ts.map +0 -1
  53. package/dist/src/errors.js +0 -19
  54. package/dist/src/keyPair.d.ts.map +0 -1
  55. package/dist/src/keyPair.js +0 -130
  56. package/dist/src/transaction.d.ts +0 -43
  57. package/dist/src/transaction.d.ts.map +0 -1
  58. package/dist/src/transaction.js +0 -98
  59. package/dist/src/transactionBuilder.d.ts.map +0 -1
  60. package/dist/src/transactionBuilder.js +0 -171
  61. package/dist/src/transactionBuilderFactory.d.ts.map +0 -1
  62. package/dist/src/transactionBuilderFactory.js +0 -53
  63. package/dist/src/transferBuilder.d.ts.map +0 -1
  64. package/dist/src/transferBuilder.js +0 -31
  65. package/dist/src/utils.d.ts +0 -50
  66. package/dist/src/utils.d.ts.map +0 -1
  67. package/dist/src/utils.js +0 -98
  68. package/dist/src/validatorTxBuilder.d.ts.map +0 -1
  69. package/dist/src/validatorTxBuilder.js +0 -58
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/sdk-coin-avaxp",
3
- "version": "0.2.0-dev.1",
3
+ "version": "1.0.1-rc.2",
4
4
  "description": "BitGo's SDK coin library for avaxp coin",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -12,9 +12,12 @@
12
12
  "lint": "eslint --quiet .",
13
13
  "precommit": "yarn lint-staged",
14
14
  "prepare": "npm run build",
15
- "scriptsComment": {
16
- "build": "Need to re-add unit-test: 'nyc -- mocha' and test 'npm run unit-test', removed to green build and will add tests as implemented"
17
- }
15
+ "test": "npm run coverage",
16
+ "coverage": "nyc -- npm run unit-test",
17
+ "unit-test": "mocha"
18
+ },
19
+ "scriptsComment": {
20
+ "build": "Need to re-add unit-test: 'nyc -- mocha' and test 'npm run unit-test', removed to green build and will add tests as implemented"
18
21
  },
19
22
  "repository": {
20
23
  "type": "git",
@@ -40,18 +43,20 @@
40
43
  ".ts"
41
44
  ]
42
45
  },
46
+ "devDependencies": {
47
+ "@types/elliptic": "^6.4.12"
48
+ },
43
49
  "dependencies": {
44
- "@bitgo/sdk-core": "^1.2.0-dev.1",
45
- "@bitgo/statics": "^6.18.0-dev.0",
50
+ "@bitgo/sdk-core": "^1.1.0-rc.24",
51
+ "@bitgo/statics": "^7.0.0-rc.0",
46
52
  "avalanche": "3.13.3",
47
53
  "bech32": "2.0.0",
48
54
  "bignumber.js": "^9.0.0",
49
55
  "bip32": "^2.0.6",
50
56
  "bitcoinjs-lib": "npm:@bitgo/bitcoinjs-lib@6.1.0-rc.3",
57
+ "create-hash": "^1.2.0",
58
+ "elliptic": "^6.5.2",
51
59
  "secp256k1": "^4.0.2"
52
60
  },
53
- "devDependencies": {
54
- "@types/node": "^11.11.4"
55
- },
56
- "gitHead": "6dc7b0d27f8267f458c00673e0adbbb0a6c4df3a"
61
+ "gitHead": "38711bb617dec1af06bcc5c43302c4152be97ec9"
57
62
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegatorTxBuilder.d.ts","sourceRoot":"","sources":["../../src/delegatorTxBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAA8C,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAoB,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEL,MAAM,EACN,eAAe,EAIf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,kBAAmB,SAAQ,kBAAkB;IACxD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IACvB,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;IAC3B,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC;IAEtC;;;OAGG;gBACS,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM5C;;;OAGG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM3B;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvC;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKrC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI;IAOrC;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMzC;;OAEG;IAEH;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWpC;;;;;;;OAOG;IACH,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI;IAYvD;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI;IAQrC,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAIvD,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAY9B;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,MAAM;IAiBzC,SAAS,CAAC,gBAAgB,IAAI,kBAAkB;IAOhD,SAAS,CAAC,kBAAkB,IAAI,eAAe;IAG/C,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,cAAc,EAAE;IAWrE,SAAS,CAAC,iBAAiB,IAAI;QAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAAC,OAAO,EAAE,kBAAkB,EAAE,CAAA;KAAE;CA8B9F"}
@@ -1,183 +0,0 @@
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.DelegatorTxBuilder = void 0;
7
- const sdk_core_1 = require("@bitgo/sdk-core");
8
- const transactionBuilder_1 = require("./transactionBuilder");
9
- const platformvm_1 = require("avalanche/dist/apis/platformvm");
10
- const avalanche_1 = require("avalanche");
11
- const utils_1 = __importDefault(require("./utils"));
12
- class DelegatorTxBuilder extends transactionBuilder_1.TransactionBuilder {
13
- /**
14
- *
15
- * @param coinConfig
16
- */
17
- constructor(coinConfig) {
18
- super(coinConfig);
19
- const network = coinConfig.network;
20
- this._stakeAmount = new avalanche_1.BN(network.minStake.toString());
21
- }
22
- /**
23
- * get transaction type
24
- * @protected
25
- */
26
- get transactionType() {
27
- return sdk_core_1.TransactionType.StakingLock;
28
- }
29
- /**
30
- *
31
- * @param nodeID
32
- */
33
- nodeID(value) {
34
- this.validateNodeID(value);
35
- this._nodeID = value;
36
- return this;
37
- }
38
- /**
39
- *
40
- * @param startTime
41
- */
42
- startTime(value) {
43
- this._startTime = new avalanche_1.BN(value);
44
- return this;
45
- }
46
- /**
47
- *
48
- * @param endTime
49
- */
50
- endTime(value) {
51
- this._endTime = new avalanche_1.BN(value);
52
- return this;
53
- }
54
- /**
55
- *
56
- * @param value
57
- */
58
- stakeAmount(value) {
59
- const valueBN = avalanche_1.BN.isBN(value) ? value : new avalanche_1.BN(value);
60
- this.validateStakeAmount(valueBN);
61
- this._stakeAmount = valueBN;
62
- return this;
63
- }
64
- /**
65
- * Set the transaction source
66
- *
67
- * @param {BaseAddress} address The source account
68
- * @returns {TransactionBuilder} This transaction builder
69
- */
70
- rewardAddress(address) {
71
- this.validateAddress(address);
72
- this._rewardAddress = address;
73
- return this;
74
- }
75
- /**
76
- * region Validators
77
- */
78
- /**
79
- * validates a correct NodeID is used
80
- * @param nodeID
81
- */
82
- validateNodeID(nodeID) {
83
- if (!nodeID) {
84
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing nodeID');
85
- }
86
- if (nodeID.slice(0, 6) !== 'NodeID') {
87
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: invalid NodeID tag');
88
- }
89
- if (nodeID.length !== 40) {
90
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: NodeID has incorrect length');
91
- }
92
- }
93
- /**
94
- *
95
- * protected _startTime: Date;
96
- * protected _endTime: Date;
97
- * 2 weeks = 1209600
98
- * 1 year = 31556926
99
- * unix time stamp based off seconds
100
- */
101
- validateStakeDuration(startTime, endTime) {
102
- if (endTime < startTime) {
103
- throw new sdk_core_1.BuildTransactionError('End date cannot be less than start date');
104
- }
105
- if (startTime.add(new avalanche_1.BN(this._network.minStakeDuration)).gt(endTime)) {
106
- throw new sdk_core_1.BuildTransactionError('End date must be greater than or equal to two weeks');
107
- }
108
- if (endTime.gt(startTime.add(new avalanche_1.BN(this._network.maxStakeDuration)))) {
109
- throw new sdk_core_1.BuildTransactionError('End date must be less than or equal to one year');
110
- }
111
- }
112
- /**
113
- *
114
- * @param amount
115
- */
116
- validateStakeAmount(amount) {
117
- if (amount.lt(new avalanche_1.BN(this._network.minStake.toString()))) {
118
- throw new sdk_core_1.BuildTransactionError('Minimum staking amount is 2,000 AVAX');
119
- }
120
- }
121
- // endregion
122
- signImplementation(key) {
123
- throw new sdk_core_1.NotImplementedError('Method not implemented');
124
- }
125
- initBuilder(tx) {
126
- if (!tx)
127
- return this;
128
- const vtx = tx;
129
- this._nodeID = vtx.getNodeIDString();
130
- this._startTime = vtx.getStartTime();
131
- this._endTime = vtx.getEndTime();
132
- this._stakeAmount = vtx.getStakeAmount();
133
- this._utxos = this.recoverUtxos(vtx.getIns());
134
- return super.initBuilder(tx);
135
- }
136
- /**
137
- *
138
- * @protected
139
- */
140
- buildAvaxpTransaction() {
141
- const { inputs, outputs } = this.createInputOutput();
142
- return new platformvm_1.AddDelegatorTx(this._networkID, this._blockchainID, outputs, inputs, this._memo, utils_1.default.NodeIDStringToBuffer(this._nodeID), this._startTime, this._endTime, this._stakeAmount, [this.stakeTransferOut()], this.rewardOwnersOutput());
143
- }
144
- stakeTransferOut() {
145
- return new platformvm_1.TransferableOutput(this._assetId, new platformvm_1.SECPTransferOutput(this._stakeAmount, this._fromPubKeys, this._locktime, this._threshold));
146
- }
147
- rewardOwnersOutput() {
148
- return new platformvm_1.ParseableOutput(new platformvm_1.SECPOwnerOutput(this._fromPubKeys, this._locktime, this._threshold));
149
- }
150
- recoverUtxos(inputs) {
151
- return inputs.map((input) => {
152
- return {
153
- outputID: 7,
154
- outputidx: utils_1.default.cb58Encode(input.getOutputIdx()),
155
- txid: utils_1.default.cb58Encode(input.getTxID()),
156
- amount: input.getInput().getAmount().toString(),
157
- };
158
- });
159
- }
160
- createInputOutput() {
161
- const inputs = [];
162
- const outputs = [];
163
- let total = new avalanche_1.BN(0);
164
- const totalTarget = this._stakeAmount.clone().add(this._txFee);
165
- this._utxos.forEach((output, i) => {
166
- if (output.outputID === 7 && total.lte(totalTarget)) {
167
- const txidBuf = utils_1.default.cb58Decode(output.txid);
168
- const amt = new avalanche_1.BN(output.amount);
169
- const outputidx = utils_1.default.cb58Decode(output.outputidx);
170
- total = total.add(amt);
171
- const secpTransferInput = new platformvm_1.SECPTransferInput(amt);
172
- // TODO multisigner support
173
- secpTransferInput.addSignatureIdx(0, this._fromPubKeys[0]);
174
- const input = new platformvm_1.TransferableInput(txidBuf, outputidx, this._assetId, secpTransferInput);
175
- inputs.push(input);
176
- }
177
- });
178
- outputs.push(new platformvm_1.TransferableOutput(this._assetId, new platformvm_1.SECPTransferOutput(total.sub(totalTarget), this._fromPubKeys, this._locktime, this._threshold)));
179
- return { inputs, outputs };
180
- }
181
- }
182
- exports.DelegatorTxBuilder = DelegatorTxBuilder;
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdG9yVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlbGVnYXRvclR4QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBb0g7QUFHcEgsNkRBQTBEO0FBQzFELCtEQVN3QztBQUN4Qyx5Q0FBK0I7QUFFL0Isb0RBQTRCO0FBRTVCLE1BQWEsa0JBQW1CLFNBQVEsdUNBQWtCO0lBT3hEOzs7T0FHRztJQUNILFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUEyQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxjQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBc0I7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGNBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPLENBQUMsS0FBc0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMs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RXJELDJCQUEyQjtnQkFDM0IsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTNELE1BQU0sS0FBSyxHQUFzQixJQUFJLDhCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUM3RyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUNWLElBQUksK0JBQWtCLENBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSwrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ25HLENBQ0YsQ0FBQztRQUVGLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBdk5ELGdEQXVOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIE5vdEltcGxlbWVudGVkRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBBdmFsYW5jaGVOZXR3b3JrLCBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7XG4gIEFkZERlbGVnYXRvclR4LFxuICBCYXNlVHgsXG4gIFBhcnNlYWJsZU91dHB1dCxcbiAgU0VDUE93bmVyT3V0cHV0LFxuICBTRUNQVHJhbnNmZXJJbnB1dCxcbiAgU0VDUFRyYW5zZmVyT3V0cHV0LFxuICBUcmFuc2ZlcmFibGVJbnB1dCxcbiAgVHJhbnNmZXJhYmxlT3V0cHV0LFxufSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL3BsYXRmb3Jtdm0nO1xuaW1wb3J0IHsgQk4gfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgRGVjb2RlZFV0eG9PYmogfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIERlbGVnYXRvclR4QnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfbm9kZUlEOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc3RhcnRUaW1lOiBCTjtcbiAgcHJvdGVjdGVkIF9lbmRUaW1lOiBCTjtcbiAgcHJvdGVjdGVkIF9zdGFrZUFtb3VudDogQk47XG4gIHByb3RlY3RlZCBfcmV3YXJkQWRkcmVzczogQmFzZUFkZHJlc3M7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBjb2luQ29uZmlnXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIGNvbnN0IG5ldHdvcmsgPSBjb2luQ29uZmlnLm5ldHdvcmsgYXMgQXZhbGFuY2hlTmV0d29yaztcbiAgICB0aGlzLl9zdGFrZUFtb3VudCA9IG5ldyBCTihuZXR3b3JrLm1pblN0YWtlLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0cmFuc2FjdGlvbiB0eXBlXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nTG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZUlEXG4gICAqL1xuICBub2RlSUQodmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVOb2RlSUQodmFsdWUpO1xuICAgIHRoaXMuX25vZGVJRCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzdGFydFRpbWVcbiAgICovXG4gIHN0YXJ0VGltZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5fc3RhcnRUaW1lID0gbmV3IEJOKHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZW5kVGltZVxuICAgKi9cbiAgZW5kVGltZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5fZW5kVGltZSA9IG5ldyBCTih2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBzdGFrZUFtb3VudCh2YWx1ZTogQk4gfCBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB2YWx1ZUJOID0gQk4uaXNCTih2YWx1ZSkgPyB2YWx1ZSA6IG5ldyBCTih2YWx1ZSk7XG4gICAgdGhpcy52YWxpZGF0ZVN0YWtlQW1vdW50KHZhbHVlQk4pO1xuICAgIHRoaXMuX3N0YWtlQW1vdW50ID0gdmFsdWVCTjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHNvdXJjZVxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSBhZGRyZXNzIFRoZSBzb3VyY2UgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHJld2FyZEFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzKTtcbiAgICB0aGlzLl9yZXdhcmRBZGRyZXNzID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiByZWdpb24gVmFsaWRhdG9yc1xuICAgKi9cblxuICAvKipcbiAgICogdmFsaWRhdGVzIGEgY29ycmVjdCBOb2RlSUQgaXMgdXNlZFxuICAgKiBAcGFyYW0gbm9kZUlEXG4gICAqL1xuICB2YWxpZGF0ZU5vZGVJRChub2RlSUQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghbm9kZUlEKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIG5vZGVJRCcpO1xuICAgIH1cbiAgICBpZiAobm9kZUlELnNsaWNlKDAsIDYpICE9PSAnTm9kZUlEJykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogaW52YWxpZCBOb2RlSUQgdGFnJyk7XG4gICAgfVxuICAgIGlmIChub2RlSUQubGVuZ3RoICE9PSA0MCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogTm9kZUlEIGhhcyBpbmNvcnJlY3QgbGVuZ3RoJyk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKlxuICAgKiAgIHByb3RlY3RlZCBfc3RhcnRUaW1lOiBEYXRlO1xuICAgKiAgIHByb3RlY3RlZCBfZW5kVGltZTogRGF0ZTtcbiAgICogICAyIHdlZWtzID0gMTIwOTYwMFxuICAgKiAgIDEgeWVhciA9IDMxNTU2OTI2XG4gICAqICAgdW5peCB0aW1lIHN0YW1wIGJhc2VkIG9mZiBzZWNvbmRzXG4gICAqL1xuICB2YWxpZGF0ZVN0YWtlRHVyYXRpb24oc3RhcnRUaW1lOiBCTiwgZW5kVGltZTogQk4pOiB2b2lkIHtcbiAgICBpZiAoZW5kVGltZSA8IHN0YXJ0VGltZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignRW5kIGRhdGUgY2Fubm90IGJlIGxlc3MgdGhhbiBzdGFydCBkYXRlJyk7XG4gICAgfVxuICAgIGlmIChzdGFydFRpbWUuYWRkKG5ldyBCTih0aGlzLl9uZXR3b3JrLm1pblN0YWtlRHVyYXRpb24pKS5ndChlbmRUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignRW5kIGRhdGUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdHdvIHdlZWtzJyk7XG4gICAgfVxuICAgIGlmIChlbmRUaW1lLmd0KHN0YXJ0VGltZS5hZGQobmV3IEJOKHRoaXMuX25ldHdvcmsubWF4U3Rha2VEdXJhdGlvbikpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignRW5kIGRhdGUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gb25lIHllYXInKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGFtb3VudFxuICAgKi9cbiAgdmFsaWRhdGVTdGFrZUFtb3VudChhbW91bnQ6IEJOKTogdm9pZCB7XG4gICAgaWYgKGFtb3VudC5sdChuZXcgQk4odGhpcy5fbmV0d29yay5taW5TdGFrZS50b1N0cmluZygpKSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pbmltdW0gc3Rha2luZyBhbW91bnQgaXMgMiwwMDAgQVZBWCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eD86IEJhc2VUeCk6IHRoaXMge1xuICAgIGlmICghdHgpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHZ0eCA9IHR4IGFzIEFkZERlbGVnYXRvclR4O1xuICAgIHRoaXMuX25vZGVJRCA9IHZ0eC5nZXROb2RlSURTdHJpbmcoKTtcbiAgICB0aGlzLl9zdGFydFRpbWUgPSB2dHguZ2V0U3RhcnRUaW1lKCk7XG4gICAgdGhpcy5fZW5kVGltZSA9IHZ0eC5nZXRFbmRUaW1lKCk7XG4gICAgdGhpcy5fc3Rha2VBbW91bnQgPSB2dHguZ2V0U3Rha2VBbW91bnQoKTtcbiAgICB0aGlzLl91dHhvcyA9IHRoaXMucmVjb3ZlclV0eG9zKHZ0eC5nZXRJbnMoKSk7XG5cbiAgICByZXR1cm4gc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZEF2YXhwVHJhbnNhY3Rpb24oKTogQmFzZVR4IHtcbiAgICBjb25zdCB7IGlucHV0cywgb3V0cHV0cyB9ID0gdGhpcy5jcmVhdGVJbnB1dE91dHB1dCgpO1xuICAgIHJldHVybiBuZXcgQWRkRGVsZWdhdG9yVHgoXG4gICAgICB0aGlzLl9uZXR3b3JrSUQsXG4gICAgICB0aGlzLl9ibG9ja2NoYWluSUQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgaW5wdXRzLFxuICAgICAgdGhpcy5fbWVtbyxcbiAgICAgIHV0aWxzLk5vZGVJRFN0cmluZ1RvQnVmZmVyKHRoaXMuX25vZGVJRCksXG4gICAgICB0aGlzLl9zdGFydFRpbWUsXG4gICAgICB0aGlzLl9lbmRUaW1lLFxuICAgICAgdGhpcy5fc3Rha2VBbW91bnQsXG4gICAgICBbdGhpcy5zdGFrZVRyYW5zZmVyT3V0KCldLFxuICAgICAgdGhpcy5yZXdhcmRPd25lcnNPdXRwdXQoKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3Rha2VUcmFuc2Zlck91dCgpOiBUcmFuc2ZlcmFibGVPdXRwdXQge1xuICAgIHJldHVybiBuZXcgVHJhbnNmZXJhYmxlT3V0cHV0KFxuICAgICAgdGhpcy5fYXNzZXRJZCxcbiAgICAgIG5ldyBTRUNQVHJhbnNmZXJPdXRwdXQodGhpcy5fc3Rha2VBbW91bnQsIHRoaXMuX2Zyb21QdWJLZXlzLCB0aGlzLl9sb2NrdGltZSwgdGhpcy5fdGhyZXNob2xkKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmV3YXJkT3duZXJzT3V0cHV0KCk6IFBhcnNlYWJsZU91dHB1dCB7XG4gICAgcmV0dXJuIG5ldyBQYXJzZWFibGVPdXRwdXQobmV3IFNFQ1BPd25lck91dHB1dCh0aGlzLl9mcm9tUHViS2V5cywgdGhpcy5fbG9ja3RpbWUsIHRoaXMuX3RocmVzaG9sZCkpO1xuICB9XG4gIHByb3RlY3RlZCByZWNvdmVyVXR4b3MoaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdKTogRGVjb2RlZFV0eG9PYmpbXSB7XG4gICAgcmV0dXJuIGlucHV0cy5tYXAoKGlucHV0KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvdXRwdXRJRDogNyxcbiAgICAgICAgb3V0cHV0aWR4OiB1dGlscy5jYjU4RW5jb2RlKGlucHV0LmdldE91dHB1dElkeCgpKSxcbiAgICAgICAgdHhpZDogdXRpbHMuY2I1OEVuY29kZShpbnB1dC5nZXRUeElEKCkpLFxuICAgICAgICBhbW91bnQ6IChpbnB1dC5nZXRJbnB1dCgpIGFzIFNFQ1BUcmFuc2ZlcklucHV0KS5nZXRBbW91bnQoKS50b1N0cmluZygpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVJbnB1dE91dHB1dCgpOiB7IGlucHV0czogVHJhbnNmZXJhYmxlSW5wdXRbXTsgb3V0cHV0czogVHJhbnNmZXJhYmxlT3V0cHV0W10gfSB7XG4gICAgY29uc3QgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdID0gW107XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNmZXJhYmxlT3V0cHV0W10gPSBbXTtcbiAgICBsZXQgdG90YWw6IEJOID0gbmV3IEJOKDApO1xuICAgIGNvbnN0IHRvdGFsVGFyZ2V0ID0gdGhpcy5fc3Rha2VBbW91bnQuY2xvbmUoKS5hZGQodGhpcy5fdHhGZWUpO1xuICAgIHRoaXMuX3V0eG9zLmZvckVhY2goKG91dHB1dCwgaSkgPT4ge1xuICAgICAgaWYgKG91dHB1dC5vdXRwdXRJRCA9PT0gNyAmJiB0b3RhbC5sdGUodG90YWxUYXJnZXQpKSB7XG4gICAgICAgIGNvbnN0IHR4aWRCdWYgPSB1dGlscy5jYjU4RGVjb2RlKG91dHB1dC50eGlkKTtcbiAgICAgICAgY29uc3QgYW10OiBCTiA9IG5ldyBCTihvdXRwdXQuYW1vdW50KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0aWR4ID0gdXRpbHMuY2I1OERlY29kZShvdXRwdXQub3V0cHV0aWR4KTtcbiAgICAgICAgdG90YWwgPSB0b3RhbC5hZGQoYW10KTtcblxuICAgICAgICBjb25zdCBzZWNwVHJhbnNmZXJJbnB1dCA9IG5ldyBTRUNQVHJhbnNmZXJJbnB1dChhbXQpO1xuXG4gICAgICAgIC8vIFRPRE8gbXVsdGlzaWduZXIgc3VwcG9ydFxuICAgICAgICBzZWNwVHJhbnNmZXJJbnB1dC5hZGRTaWduYXR1cmVJZHgoMCwgdGhpcy5fZnJvbVB1YktleXNbMF0pO1xuXG4gICAgICAgIGNvbnN0IGlucHV0OiBUcmFuc2ZlcmFibGVJbnB1dCA9IG5ldyBUcmFuc2ZlcmFibGVJbnB1dCh0eGlkQnVmLCBvdXRwdXRpZHgsIHRoaXMuX2Fzc2V0SWQsIHNlY3BUcmFuc2ZlcklucHV0KTtcbiAgICAgICAgaW5wdXRzLnB1c2goaW5wdXQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIG91dHB1dHMucHVzaChcbiAgICAgIG5ldyBUcmFuc2ZlcmFibGVPdXRwdXQoXG4gICAgICAgIHRoaXMuX2Fzc2V0SWQsXG4gICAgICAgIG5ldyBTRUNQVHJhbnNmZXJPdXRwdXQodG90YWwuc3ViKHRvdGFsVGFyZ2V0KSwgdGhpcy5fZnJvbVB1YktleXMsIHRoaXMuX2xvY2t0aW1lLCB0aGlzLl90aHJlc2hvbGQpXG4gICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiB7IGlucHV0cywgb3V0cHV0cyB9O1xuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAAa,sBAAuB,SAAQ,qBAAqB;gBACnD,gBAAgB,EAAE,MAAM;CAIrC;AAED,qBAAa,eAAgB,SAAQ,qBAAqB;gBAC5C,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAIjD"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidFeeError = exports.AddressValidationError = void 0;
4
- const sdk_core_1 = require("@bitgo/sdk-core");
5
- class AddressValidationError extends sdk_core_1.BuildTransactionError {
6
- constructor(malformedAddress) {
7
- super(`The address '${malformedAddress}' is not a well-formed dot 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBd0Q7QUFFeEQsTUFBYSxzQkFBdUIsU0FBUSxnQ0FBcUI7SUFDL0QsWUFBWSxnQkFBd0I7UUFDbEMsS0FBSyxDQUFDLGdCQUFnQixnQkFBZ0Isb0NBQW9DLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFMRCx3REFLQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxnQ0FBcUI7SUFDeEQsWUFBWSxJQUFhLEVBQUUsWUFBcUI7UUFDOUMsS0FBSyxDQUFDLHdCQUF3QixJQUFJLDZDQUE2QyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFMRCwwQ0FLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgQnVpbGRUcmFuc2FjdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IobWFsZm9ybWVkQWRkcmVzczogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRoZSBhZGRyZXNzICcke21hbGZvcm1lZEFkZHJlc3N9JyBpcyBub3QgYSB3ZWxsLWZvcm1lZCBkb3QgYWRkcmVzc2ApO1xuICAgIHRoaXMubmFtZSA9IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IubmFtZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZEZlZUVycm9yIGV4dGVuZHMgQnVpbGRUcmFuc2FjdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IodHlwZT86IHN0cmluZywgZXhwZWN0ZWRUeXBlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRoZSBzcGVjaWZpZWQgdHlwZTogXCIke3R5cGV9XCIgaXMgbm90IHZhbGlkLiBQbGVhc2UgcHJvdmlkZSB0aGUgdHlwZTogXCIke2V4cGVjdGVkVHlwZX1cImApO1xuICAgIHRoaXMubmFtZSA9IEludmFsaWRGZWVFcnJvci5uYW1lO1xuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../src/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAMX,cAAc,EACd,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAUzB,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,OAAO,SAAS,CAAC;AAE9B,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;IAW1C;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAOtB;;;;OAIG;IACH,UAAU,CAAC,MAAM,GAAE,MAAgB,GAAG,MAAM;IAI5C;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAKrC"}
@@ -1,130 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.KeyPair = exports.mainnet = exports.testnet = void 0;
26
- const sdk_core_1 = require("@bitgo/sdk-core");
27
- const avalanche_1 = require("avalanche");
28
- const common_1 = require("avalanche/dist/common");
29
- const bech32_1 = require("bech32");
30
- const bip32 = __importStar(require("bip32"));
31
- const bitcoinjs_lib_1 = require("bitcoinjs-lib");
32
- const crypto_1 = require("crypto");
33
- const utils_1 = __importDefault(require("./utils"));
34
- const DEFAULT_SEED_SIZE_BYTES = 16;
35
- exports.testnet = 'fuji';
36
- exports.mainnet = 'avax';
37
- class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
38
- /**
39
- * Public constructor. By default, creates a key pair with a random master seed.
40
- *
41
- * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
42
- */
43
- constructor(source) {
44
- super(source);
45
- if (!source) {
46
- const seed = crypto_1.randomBytes(DEFAULT_SEED_SIZE_BYTES);
47
- this.hdNode = bip32.fromSeed(seed);
48
- }
49
- else if (sdk_core_1.isSeed(source)) {
50
- this.hdNode = bip32.fromSeed(source.seed);
51
- }
52
- else if (sdk_core_1.isPrivateKey(source)) {
53
- this.recordKeysFromPrivateKey(source.prv);
54
- }
55
- else if (sdk_core_1.isPublicKey(source)) {
56
- this.recordKeysFromPublicKey(source.pub);
57
- }
58
- else {
59
- throw new Error('Invalid key pair options');
60
- }
61
- if (this.hdNode) {
62
- this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
63
- }
64
- }
65
- /**
66
- * Build a keypair from a protocol private key or extended private key.
67
- *
68
- * @param {string} prv A raw private key
69
- */
70
- recordKeysFromPrivateKey(prv) {
71
- if (!utils_1.default.isValidPrivateKey(prv)) {
72
- throw new Error('Unsupported private key');
73
- }
74
- if (sdk_core_1.isValidXprv(prv)) {
75
- this.hdNode = bip32.fromBase58(prv);
76
- }
77
- else {
78
- this.keyPair = bitcoinjs_lib_1.ECPair.fromPrivateKey(Buffer.from(prv.slice(0, 64), 'hex'));
79
- }
80
- }
81
- /**
82
- * Build an ECPair from a protocol public key or extended public key.
83
- *
84
- * @param {string} pub A raw public key
85
- */
86
- recordKeysFromPublicKey(pub) {
87
- if (!utils_1.default.isValidPublicKey(pub)) {
88
- throw new Error('Unsupported public key');
89
- }
90
- if (sdk_core_1.isValidXpub(pub)) {
91
- this.hdNode = bip32.fromBase58(pub);
92
- }
93
- else {
94
- this.keyPair = bitcoinjs_lib_1.ECPair.fromPublicKey(Buffer.from(pub, 'hex'));
95
- }
96
- }
97
- /**
98
- * Default keys format is a pair of Uint8Array keys
99
- *
100
- * @returns { DefaultKeys } The keys in the defined format
101
- */
102
- getKeys() {
103
- var _a;
104
- return {
105
- pub: this.getPublicKey({ compressed: true }).toString('hex'),
106
- prv: (_a = this.getPrivateKey()) === null || _a === void 0 ? void 0 : _a.toString('hex'),
107
- };
108
- }
109
- /**
110
- * Get an Avalanche P-Chain public mainnet address
111
- *
112
- * @returns {string} The mainnet address derived from the public key
113
- */
114
- getAddress(format = exports.mainnet) {
115
- return this.getAvaxPAddress(format);
116
- }
117
- /**
118
- * Get a public address of public key.
119
- *
120
- * @param {string} hrp - select Mainnet(avax) or Testnet(fuji) for the address
121
- * @returns {string} The address derived from the public key and hrp
122
- */
123
- getAvaxPAddress(hrp) {
124
- const publicKey = avalanche_1.Buffer.from(this.getKeys().pub, 'hex');
125
- const addrressBuffer = common_1.SECP256k1KeyPair.addressFromPublicKey(publicKey);
126
- return bech32_1.bech32.encode(hrp, bech32_1.bech32.toWords(addrressBuffer));
127
- }
128
- }
129
- exports.KeyPair = KeyPair;
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FTeUI7QUFDekIseUNBQWlEO0FBQ2pELGtEQUF5RDtBQUN6RCxtQ0FBZ0M7QUFDaEMsNkNBQStCO0FBQy9CLGlEQUF1QztBQUN2QyxtQ0FBcUM7QUFDckMsb0RBQTRCO0FBRTVCLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLFFBQUEsT0FBTyxHQUFHLE1BQU0sQ0FBQztBQUNqQixRQUFBLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFFOUIsTUFBYSxPQUFRLFNBQVEsbUNBQXdCO0lBQ25EOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxvQkFBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxpQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7YUFBTSxJQUFJLHVCQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQzthQUFNLElBQUksc0JBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLG1DQUF3QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHdCQUF3QixDQUFDLEdBQVc7UUFDbEMsSUFBSSxDQUFDLGVBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLHNCQUFXLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsdUJBQXVCLENBQUMsR0FBVztRQUNqQyxJQUFJLENBQUMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksc0JBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsc0JBQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTzs7UUFDTCxPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzVELEdBQUcsRUFBRSxNQUFBLElBQUksQ0FBQyxhQUFhLEVBQUUsMENBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsU0FBaUIsZUFBTztRQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLEdBQVc7UUFDekIsTUFBTSxTQUFTLEdBQUcsa0JBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBZSx5QkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRixPQUFPLGVBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGVBQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUExRkQsMEJBMEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVmYXVsdEtleXMsXG4gIGlzUHJpdmF0ZUtleSxcbiAgaXNQdWJsaWNLZXksXG4gIGlzU2VlZCxcbiAgaXNWYWxpZFhwcnYsXG4gIGlzVmFsaWRYcHViLFxuICBLZXlQYWlyT3B0aW9ucyxcbiAgU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQnVmZmVyIGFzIEJ1ZmZlckF2YXggfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgU0VDUDI1NmsxS2V5UGFpciB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2NvbW1vbic7XG5pbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInO1xuaW1wb3J0ICogYXMgYmlwMzIgZnJvbSAnYmlwMzInO1xuaW1wb3J0IHsgRUNQYWlyIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gMTY7XG5leHBvcnQgY29uc3QgdGVzdG5ldCA9ICdmdWppJztcbmV4cG9ydCBjb25zdCBtYWlubmV0ID0gJ2F2YXgnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNlZWQgPSByYW5kb21CeXRlcyhERUZBVUxUX1NFRURfU0laRV9CWVRFUyk7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNTZWVkKHNvdXJjZSkpIHtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc291cmNlLnNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNQcml2YXRlS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHNvdXJjZS5wcnYpO1xuICAgIH0gZWxzZSBpZiAoaXNQdWJsaWNLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5yZWNvcmRLZXlzRnJvbVB1YmxpY0tleShzb3VyY2UucHViKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleSBwYWlyIG9wdGlvbnMnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oZE5vZGUpIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpci50b0tleVBhaXIodGhpcy5oZE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGtleXBhaXIgZnJvbSBhIHByb3RvY29sIHByaXZhdGUga2V5IG9yIGV4dGVuZGVkIHByaXZhdGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJ2IEEgcmF3IHByaXZhdGUga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KHBydikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgaWYgKGlzVmFsaWRYcHJ2KHBydikpIHtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbUJhc2U1OChwcnYpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBFQ1BhaXIuZnJvbVByaXZhdGVLZXkoQnVmZmVyLmZyb20ocHJ2LnNsaWNlKDAsIDY0KSwgJ2hleCcpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW4gRUNQYWlyIGZyb20gYSBwcm90b2NvbCBwdWJsaWMga2V5IG9yIGV4dGVuZGVkIHB1YmxpYyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWIgQSByYXcgcHVibGljIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkocHViOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICAgIGlmIChpc1ZhbGlkWHB1YihwdWIpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHViKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21QdWJsaWNLZXkoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGtleXMgZm9ybWF0IGlzIGEgcGFpciBvZiBVaW50OEFycmF5IGtleXNcbiAgICpcbiAgICogQHJldHVybnMgeyBEZWZhdWx0S2V5cyB9IFRoZSBrZXlzIGluIHRoZSBkZWZpbmVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkOiB0cnVlIH0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydjogdGhpcy5nZXRQcml2YXRlS2V5KCk/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBBdmFsYW5jaGUgUC1DaGFpbiBwdWJsaWMgbWFpbm5ldCBhZGRyZXNzXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBtYWlubmV0IGFkZHJlc3MgZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5XG4gICAqL1xuICBnZXRBZGRyZXNzKGZvcm1hdDogc3RyaW5nID0gbWFpbm5ldCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXZheFBBZGRyZXNzKGZvcm1hdCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgcHVibGljIGFkZHJlc3Mgb2YgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhycCAtIHNlbGVjdCBNYWlubmV0KGF2YXgpIG9yIFRlc3RuZXQoZnVqaSkgZm9yIHRoZSBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhZGRyZXNzIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleSBhbmQgaHJwXG4gICAqL1xuICBnZXRBdmF4UEFkZHJlc3MoaHJwOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IEJ1ZmZlckF2YXguZnJvbSh0aGlzLmdldEtleXMoKS5wdWIsICdoZXgnKTtcbiAgICBjb25zdCBhZGRycmVzc0J1ZmZlcjogQnVmZmVyQXZheCA9IFNFQ1AyNTZrMUtleVBhaXIuYWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5KTtcbiAgICByZXR1cm4gYmVjaDMyLmVuY29kZShocnAsIGJlY2gzMi50b1dvcmRzKGFkZHJyZXNzQnVmZmVyKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,43 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { BaseKey, BaseTransaction, TransactionType } from '@bitgo/sdk-core';
3
- import { KeyPair } from './keyPair';
4
- import { TxData } from './iface';
5
- import { UnsignedTx, BaseTx } from 'avalanche/dist/apis/platformvm';
6
- export declare class Transaction extends BaseTransaction {
7
- protected _avaxpTransaction: UnsignedTx;
8
- protected _avaxpBaseTransaction: BaseTx;
9
- private _sender;
10
- protected _type: TransactionType;
11
- protected _chainID: string;
12
- protected _hrp: string;
13
- constructor(coinConfig: Readonly<CoinConfig>);
14
- get avaxPTransaction(): BaseTx;
15
- set avaxPTransaction(tx: BaseTx);
16
- /** @inheritdoc */
17
- canSign({ key }: BaseKey): boolean;
18
- /**
19
- * Sign a avaxp transaction and update the transaction hex
20
- * validator, delegator, import, exports extend baseTx
21
- * unsignedTx: UnsignedTx = new UnsignedTx(baseTx) (baseTx = addValidatorTx)
22
- * const tx: Tx = unsignedTx.sign(keychain) (tx is type standard signed tx)
23
- * get baseTx then create new unsignedTx then sign
24
- *
25
- * @param {KeyPair} keyPair
26
- */
27
- sign(keyPair: KeyPair): void;
28
- sender(sender: string): void;
29
- /** @inheritdoc */
30
- /**
31
- * should be of signedTx doing this with baseTx
32
- */
33
- toBroadcastFormat(): string;
34
- toJson(): TxData;
35
- setTransaction(tx: UnsignedTx): void;
36
- /**
37
- * Set the transaction type
38
- *
39
- * @param {TransactionType} transactionType The transaction type to be set
40
- */
41
- setTransactionType(transactionType: TransactionType): void;
42
- }
43
- //# sourceMappingURL=transaction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAgB,eAAe,EAAE,eAAe,EAA2B,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAY,MAAM,gCAAgC,CAAC;AAG9E,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,iBAAiB,EAAG,UAAU,CAAC;IACzC,SAAS,CAAC,qBAAqB,EAAG,MAAM,CAAC;IACzC,OAAO,CAAC,OAAO,CAAU;IACzB,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEX,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO5C,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAE9B;IAED,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IASlC;;;;;;;;OAQG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAa5B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,kBAAkB;IAClB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAW3B,MAAM,IAAI,MAAM;IAchB,cAAc,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAIpC;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAG3D"}
@@ -1,98 +0,0 @@
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.Transaction = void 0;
7
- const sdk_core_1 = require("@bitgo/sdk-core");
8
- const keyPair_1 = require("./keyPair");
9
- const platformvm_1 = require("avalanche/dist/apis/platformvm");
10
- const utils_1 = __importDefault(require("./utils"));
11
- class Transaction extends sdk_core_1.BaseTransaction {
12
- constructor(coinConfig) {
13
- super(coinConfig);
14
- const network = coinConfig.network;
15
- this._chainID = network.alias;
16
- this._hrp = network.hrp;
17
- }
18
- get avaxPTransaction() {
19
- return this._avaxpBaseTransaction;
20
- }
21
- set avaxPTransaction(tx) {
22
- this._avaxpBaseTransaction = tx;
23
- }
24
- /** @inheritdoc */
25
- canSign({ key }) {
26
- try {
27
- new keyPair_1.KeyPair({ prv: key.key });
28
- return true;
29
- }
30
- catch {
31
- return false;
32
- }
33
- }
34
- /**
35
- * Sign a avaxp transaction and update the transaction hex
36
- * validator, delegator, import, exports extend baseTx
37
- * unsignedTx: UnsignedTx = new UnsignedTx(baseTx) (baseTx = addValidatorTx)
38
- * const tx: Tx = unsignedTx.sign(keychain) (tx is type standard signed tx)
39
- * get baseTx then create new unsignedTx then sign
40
- *
41
- * @param {KeyPair} keyPair
42
- */
43
- sign(keyPair) {
44
- const keys = keyPair.getKeys();
45
- if (!keys.prv) {
46
- throw new sdk_core_1.SigningError('Missing private key');
47
- }
48
- if (!this.avaxPTransaction) {
49
- throw new sdk_core_1.InvalidTransactionError('empty transaction to sign');
50
- }
51
- const pKeychain = new platformvm_1.KeyChain(this._hrp, this._chainID);
52
- this._avaxpTransaction = new platformvm_1.UnsignedTx(this._avaxpBaseTransaction);
53
- this._avaxpTransaction.sign(pKeychain);
54
- }
55
- sender(sender) {
56
- this._sender = sender;
57
- }
58
- /** @inheritdoc */
59
- /**
60
- * should be of signedTx doing this with baseTx
61
- */
62
- toBroadcastFormat() {
63
- if (!this.avaxPTransaction) {
64
- throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
65
- }
66
- const un = new platformvm_1.UnsignedTx(this._avaxpBaseTransaction);
67
- const buffer = un.toBuffer(); // this._avaxpBaseTransaction.toBuffer();
68
- const txSerialized = utils_1.default.cb58Encode(buffer).toString();
69
- return txSerialized;
70
- }
71
- // types - stakingTransaction, import, export
72
- toJson() {
73
- if (!this.avaxPTransaction) {
74
- throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
75
- }
76
- return {
77
- blockchain_id: utils_1.default.cb58Encode(this._avaxpBaseTransaction.getBlockchainID()),
78
- network_id: this._avaxpBaseTransaction.getNetworkID(),
79
- inputs: this._avaxpBaseTransaction.getIns(),
80
- outputs: this._avaxpBaseTransaction.getOuts(),
81
- memo: utils_1.default.bufferToString(this._avaxpBaseTransaction.getMemo()),
82
- typeID: this._avaxpBaseTransaction.getTxType(),
83
- };
84
- }
85
- setTransaction(tx) {
86
- this._avaxpTransaction = tx;
87
- }
88
- /**
89
- * Set the transaction type
90
- *
91
- * @param {TransactionType} transactionType The transaction type to be set
92
- */
93
- setTransactionType(transactionType) {
94
- this._type = transactionType;
95
- }
96
- }
97
- exports.Transaction = Transaction;
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOENBQW1IO0FBQ25ILHVDQUFvQztBQUVwQywrREFBOEU7QUFDOUUsb0RBQTRCO0FBRTVCLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBUTlDLFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUEyQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLEVBQVU7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBVztRQUN0QixJQUFJO1lBQ0YsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxNQUFNO1lBQ04sT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILElBQUksQ0FBQyxPQUFnQjtRQUNuQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLElBQUksdUJBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUNoRTtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUkscUJBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSx1QkFBVSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEI7O09BRUc7SUFDSCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSx1QkFBVSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHlDQUF5QztRQUN2RSxNQUFNLFlBQVksR0FBRyxlQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPO1lBQ0wsYUFBYSxFQUFFLGVBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzdFLFVBQVUsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFO1lBQ3JELE1BQU0sRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFO1lBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFO1lBQzdDLElBQUksRUFBRSxlQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRTtTQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFjO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQkFBa0IsQ0FBQyxlQUFnQztRQUNqRCxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFwR0Qsa0NBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgQXZhbGFuY2hlTmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VLZXksIFNpZ25pbmdFcnJvciwgQmFzZVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBVbnNpZ25lZFR4LCBCYXNlVHgsIEtleUNoYWluIH0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvYXBpcy9wbGF0Zm9ybXZtJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJvdGVjdGVkIF9hdmF4cFRyYW5zYWN0aW9uITogVW5zaWduZWRUeDtcbiAgcHJvdGVjdGVkIF9hdmF4cEJhc2VUcmFuc2FjdGlvbiE6IEJhc2VUeDtcbiAgcHJpdmF0ZSBfc2VuZGVyITogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgcHJvdGVjdGVkIF9jaGFpbklEOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfaHJwOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICBjb25zdCBuZXR3b3JrID0gY29pbkNvbmZpZy5uZXR3b3JrIGFzIEF2YWxhbmNoZU5ldHdvcms7XG4gICAgdGhpcy5fY2hhaW5JRCA9IG5ldHdvcmsuYWxpYXM7XG4gICAgdGhpcy5faHJwID0gbmV0d29yay5ocnA7XG4gIH1cblxuICBnZXQgYXZheFBUcmFuc2FjdGlvbigpOiBCYXNlVHgge1xuICAgIHJldHVybiB0aGlzLl9hdmF4cEJhc2VUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCBhdmF4UFRyYW5zYWN0aW9uKHR4OiBCYXNlVHgpIHtcbiAgICB0aGlzLl9hdmF4cEJhc2VUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oeyBrZXkgfTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgYXZheHAgdHJhbnNhY3Rpb24gYW5kIHVwZGF0ZSB0aGUgdHJhbnNhY3Rpb24gaGV4XG4gICAqIHZhbGlkYXRvciwgZGVsZWdhdG9yLCBpbXBvcnQsIGV4cG9ydHMgZXh0ZW5kIGJhc2VUeFxuICAgKiB1bnNpZ25lZFR4OiBVbnNpZ25lZFR4ID0gbmV3IFVuc2lnbmVkVHgoYmFzZVR4KSAgKGJhc2VUeCA9IGFkZFZhbGlkYXRvclR4KVxuICAgKiBjb25zdCB0eDogVHggPSB1bnNpZ25lZFR4LnNpZ24oa2V5Y2hhaW4pICh0eCBpcyB0eXBlIHN0YW5kYXJkIHNpZ25lZCB0eClcbiAgICogZ2V0IGJhc2VUeCB0aGVuIGNyZWF0ZSBuZXcgdW5zaWduZWRUeCB0aGVuIHNpZ25cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyXG4gICAqL1xuICBzaWduKGtleVBhaXI6IEtleVBhaXIpOiB2b2lkIHtcbiAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgaWYgKCFrZXlzLnBydikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYXZheFBUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbiB0byBzaWduJyk7XG4gICAgfVxuICAgIGNvbnN0IHBLZXljaGFpbiA9IG5ldyBLZXlDaGFpbih0aGlzLl9ocnAsIHRoaXMuX2NoYWluSUQpO1xuICAgIHRoaXMuX2F2YXhwVHJhbnNhY3Rpb24gPSBuZXcgVW5zaWduZWRUeCh0aGlzLl9hdmF4cEJhc2VUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5fYXZheHBUcmFuc2FjdGlvbi5zaWduKHBLZXljaGFpbik7XG4gIH1cblxuICBzZW5kZXIoc2VuZGVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zZW5kZXIgPSBzZW5kZXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgLyoqXG4gICAqIHNob3VsZCBiZSBvZiBzaWduZWRUeCBkb2luZyB0aGlzIHdpdGggYmFzZVR4XG4gICAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5hdmF4UFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgdW4gPSBuZXcgVW5zaWduZWRUeCh0aGlzLl9hdmF4cEJhc2VUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYnVmZmVyID0gdW4udG9CdWZmZXIoKTsgLy8gdGhpcy5fYXZheHBCYXNlVHJhbnNhY3Rpb24udG9CdWZmZXIoKTtcbiAgICBjb25zdCB0eFNlcmlhbGl6ZWQgPSB1dGlscy5jYjU4RW5jb2RlKGJ1ZmZlcikudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdHhTZXJpYWxpemVkO1xuICB9XG5cbiAgLy8gdHlwZXMgLSBzdGFraW5nVHJhbnNhY3Rpb24sIGltcG9ydCwgZXhwb3J0XG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5hdmF4UFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGJsb2NrY2hhaW5faWQ6IHV0aWxzLmNiNThFbmNvZGUodGhpcy5fYXZheHBCYXNlVHJhbnNhY3Rpb24uZ2V0QmxvY2tjaGFpbklEKCkpLFxuICAgICAgbmV0d29ya19pZDogdGhpcy5fYXZheHBCYXNlVHJhbnNhY3Rpb24uZ2V0TmV0d29ya0lEKCksXG4gICAgICBpbnB1dHM6IHRoaXMuX2F2YXhwQmFzZVRyYW5zYWN0aW9uLmdldElucygpLFxuICAgICAgb3V0cHV0czogdGhpcy5fYXZheHBCYXNlVHJhbnNhY3Rpb24uZ2V0T3V0cygpLFxuICAgICAgbWVtbzogdXRpbHMuYnVmZmVyVG9TdHJpbmcodGhpcy5fYXZheHBCYXNlVHJhbnNhY3Rpb24uZ2V0TWVtbygpKSxcbiAgICAgIHR5cGVJRDogdGhpcy5fYXZheHBCYXNlVHJhbnNhY3Rpb24uZ2V0VHhUeXBlKCksXG4gICAgfTtcbiAgfVxuXG4gIHNldFRyYW5zYWN0aW9uKHR4OiBVbnNpZ25lZFR4KTogdm9pZCB7XG4gICAgdGhpcy5fYXZheHBUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../src/transactionBuilder.ts"],"names":[],"mappings":"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"}