@bitgo/sdk-coin-avaxp 0.1.0-rc.7 → 0.2.0-dev.1

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 (39) hide show
  1. package/dist/src/delegatorTxBuilder.d.ts +89 -0
  2. package/dist/src/delegatorTxBuilder.d.ts.map +1 -0
  3. package/dist/src/delegatorTxBuilder.js +183 -0
  4. package/dist/src/iface.d.ts +15 -12
  5. package/dist/src/iface.d.ts.map +1 -1
  6. package/dist/src/iface.js +1 -1
  7. package/dist/src/index.d.ts +12 -0
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +18 -2
  10. package/dist/src/keyPair.d.ts +3 -1
  11. package/dist/src/keyPair.d.ts.map +1 -1
  12. package/dist/src/keyPair.js +6 -5
  13. package/dist/src/transaction.d.ts +12 -3
  14. package/dist/src/transaction.d.ts.map +1 -1
  15. package/dist/src/transaction.js +54 -6
  16. package/dist/src/transactionBuilder.d.ts +47 -10
  17. package/dist/src/transactionBuilder.d.ts.map +1 -1
  18. package/dist/src/transactionBuilder.js +118 -17
  19. package/dist/src/transactionBuilderFactory.d.ts +8 -10
  20. package/dist/src/transactionBuilderFactory.d.ts.map +1 -1
  21. package/dist/src/transactionBuilderFactory.js +30 -15
  22. package/dist/src/transferBuilder.d.ts +2 -1
  23. package/dist/src/transferBuilder.d.ts.map +1 -1
  24. package/dist/src/transferBuilder.js +1 -1
  25. package/dist/src/utils.d.ts +18 -5
  26. package/dist/src/utils.d.ts.map +1 -1
  27. package/dist/src/utils.js +27 -13
  28. package/dist/src/validatorTxBuilder.d.ts +32 -0
  29. package/dist/src/validatorTxBuilder.d.ts.map +1 -0
  30. package/dist/src/validatorTxBuilder.js +58 -0
  31. package/dist/tsconfig.tsbuildinfo +4075 -1820
  32. package/package.json +4 -4
  33. package/CHANGELOG.md +0 -70
  34. package/dist/src/constants.d.ts +0 -10
  35. package/dist/src/constants.d.ts.map +0 -1
  36. package/dist/src/constants.js +0 -12
  37. package/dist/src/walletInitializationBuilder.d.ts +0 -17
  38. package/dist/src/walletInitializationBuilder.d.ts.map +0 -1
  39. package/dist/src/walletInitializationBuilder.js +0 -31
@@ -0,0 +1,89 @@
1
+ /// <reference types="bn.js" />
2
+ import { BaseAddress, BaseKey, TransactionType } from '@bitgo/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
4
+ import { Transaction } from './transaction';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ import { BaseTx, ParseableOutput, TransferableInput, TransferableOutput } from 'avalanche/dist/apis/platformvm';
7
+ import { BN } from 'avalanche';
8
+ import { DecodedUtxoObj } from './iface';
9
+ export declare class DelegatorTxBuilder extends TransactionBuilder {
10
+ protected _nodeID: string;
11
+ protected _startTime: BN;
12
+ protected _endTime: BN;
13
+ protected _stakeAmount: BN;
14
+ protected _rewardAddress: BaseAddress;
15
+ /**
16
+ *
17
+ * @param coinConfig
18
+ */
19
+ constructor(coinConfig: Readonly<CoinConfig>);
20
+ /**
21
+ * get transaction type
22
+ * @protected
23
+ */
24
+ protected get transactionType(): TransactionType;
25
+ /**
26
+ *
27
+ * @param nodeID
28
+ */
29
+ nodeID(value: string): this;
30
+ /**
31
+ *
32
+ * @param startTime
33
+ */
34
+ startTime(value: string | number): this;
35
+ /**
36
+ *
37
+ * @param endTime
38
+ */
39
+ endTime(value: string | number): this;
40
+ /**
41
+ *
42
+ * @param value
43
+ */
44
+ stakeAmount(value: BN | string): this;
45
+ /**
46
+ * Set the transaction source
47
+ *
48
+ * @param {BaseAddress} address The source account
49
+ * @returns {TransactionBuilder} This transaction builder
50
+ */
51
+ rewardAddress(address: BaseAddress): this;
52
+ /**
53
+ * region Validators
54
+ */
55
+ /**
56
+ * validates a correct NodeID is used
57
+ * @param nodeID
58
+ */
59
+ validateNodeID(nodeID: string): void;
60
+ /**
61
+ *
62
+ * protected _startTime: Date;
63
+ * protected _endTime: Date;
64
+ * 2 weeks = 1209600
65
+ * 1 year = 31556926
66
+ * unix time stamp based off seconds
67
+ */
68
+ validateStakeDuration(startTime: BN, endTime: BN): void;
69
+ /**
70
+ *
71
+ * @param amount
72
+ */
73
+ validateStakeAmount(amount: BN): void;
74
+ protected signImplementation(key: BaseKey): Transaction;
75
+ initBuilder(tx?: BaseTx): this;
76
+ /**
77
+ *
78
+ * @protected
79
+ */
80
+ protected buildAvaxpTransaction(): BaseTx;
81
+ protected stakeTransferOut(): TransferableOutput;
82
+ protected rewardOwnersOutput(): ParseableOutput;
83
+ protected recoverUtxos(inputs: TransferableInput[]): DecodedUtxoObj[];
84
+ protected createInputOutput(): {
85
+ inputs: TransferableInput[];
86
+ outputs: TransferableOutput[];
87
+ };
88
+ }
89
+ //# sourceMappingURL=delegatorTxBuilder.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,183 @@
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,4 +1,4 @@
1
- import { TransferableInput, TransferableOutput, SECPOwnerOutput } from 'avalanche/dist/apis/platformvm';
1
+ import { TransferableInput, TransferableOutput } from 'avalanche/dist/apis/platformvm';
2
2
  import { TransactionExplanation as BaseTransactionExplanation } from '@bitgo/sdk-core';
3
3
  /**
4
4
  * Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
@@ -17,17 +17,6 @@ export interface TxData {
17
17
  outputs: TransferableOutput[];
18
18
  inputs: TransferableInput[];
19
19
  memo: string;
20
- validator?: {
21
- nodeID: string;
22
- startTime: number;
23
- endTime: number;
24
- weight: number;
25
- };
26
- stake?: {
27
- lockedOuts: TransferableOutput[];
28
- };
29
- rewards_owner?: SECPOwnerOutput;
30
- shares?: number;
31
20
  }
32
21
  export declare enum TransactionTypes {
33
22
  addDelegator = "addDelegator",
@@ -40,4 +29,18 @@ export interface TransactionExplanation extends BaseTransactionExplanation {
40
29
  blockchain_id: string;
41
30
  memo?: string;
42
31
  }
32
+ /**
33
+ * Decoded UTXO object. This is for a single utxo
34
+ *
35
+ * @param {number} outputID
36
+ * @param {string} amount Amount as a Big Number string
37
+ * @param {string} txid Transaction ID encoded as cb58
38
+ * @param {string} outputidx Output index as a string
39
+ */
40
+ export declare type DecodedUtxoObj = {
41
+ outputID: number;
42
+ amount: string;
43
+ txid: string;
44
+ outputidx: string;
45
+ };
43
46
  //# sourceMappingURL=iface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../src/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACxG,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAEvF;;GAEG;AACH,oBAAY,WAAW;IACrB,YAAY,IAAA;IACZ,YAAY,IAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IAErB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,UAAU,EAAE,kBAAkB,EAAE,CAAC;KAClC,CAAC;IACF,aAAa,CAAC,EAAE,eAAe,CAAC;IAEhC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,gBAAgB;IAC1B,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../src/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAEvF;;GAEG;AACH,oBAAY,WAAW;IACrB,YAAY,IAAA;IACZ,YAAY,IAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IAErB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CAed;AAED,oBAAY,gBAAgB;IAC1B,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,oBAAY,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
package/dist/src/iface.js CHANGED
@@ -14,4 +14,4 @@ var TransactionTypes;
14
14
  TransactionTypes["addDelegator"] = "addDelegator";
15
15
  TransactionTypes["addValidator"] = "addValidator";
16
16
  })(TransactionTypes = exports.TransactionTypes || (exports.TransactionTypes = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7O0dBRUc7QUFDSCxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsNkRBQVksQ0FBQTtJQUNaLDZEQUFZLENBQUE7QUFDZCxDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUE0QkQsSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLGlEQUE2QixDQUFBO0lBQzdCLGlEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUczQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZmVyYWJsZUlucHV0LCBUcmFuc2ZlcmFibGVPdXRwdXQsIFNFQ1BPd25lck91dHB1dCB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2FwaXMvcGxhdGZvcm12bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuLyoqXG4gKiBNZXRob2QgbmFtZXMgZm9yIHRoZSB0cmFuc2FjdGlvbiBtZXRob2QuIE5hbWVzIGNoYW5nZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbiBlLmcgJ2JvbmQnIGZvciB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZW51bSBNZXRob2ROYW1lcyB7XG4gIGFkZERlbGVnYXRvcixcbiAgYWRkVmFsaWRhdG9yLFxufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICAvLyBtYW5kYXRvcnkgYmFzZSBUeFxuICB0eXBlSUQ6IG51bWJlcjtcbiAgbmV0d29ya19pZDogbnVtYmVyO1xuICBibG9ja2NoYWluX2lkOiBzdHJpbmc7XG4gIG91dHB1dHM6IFRyYW5zZmVyYWJsZU91dHB1dFtdO1xuICBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gIG1lbW86IHN0cmluZztcbiAgLy8gYWRkRGVsZWdhdG9yIGV4dGVuZHMgQmFzZVR4XG4gIHZhbGlkYXRvcj86IHtcbiAgICBub2RlSUQ6IHN0cmluZztcbiAgICBzdGFydFRpbWU6IG51bWJlcjsgLy8gdW5peCB0aW1lXG4gICAgZW5kVGltZTogbnVtYmVyOyAvLyB1bml4IHRpbWVcbiAgICB3ZWlnaHQ6IG51bWJlcjsgLy8gYW1vdW50IGRlbGVnYXRvciBzdGFrZXNcbiAgfTtcbiAgc3Rha2U/OiB7XG4gICAgbG9ja2VkT3V0czogVHJhbnNmZXJhYmxlT3V0cHV0W107IC8vIGFycmF5IG9mIHRyYW5zZmVyYWJsZSBvdXRwdXRzIHRoYXQgYXJlIGxvY2tlZCBkdXJpbmcgc3Rha2luZyBwZXJpb2RcbiAgfTtcbiAgcmV3YXJkc19vd25lcj86IFNFQ1BPd25lck91dHB1dDtcbiAgLy8gYWRkVmFsaWRhdG9yIGV4dGVuZHMgQmFzZVR4LCB2YWxpZGF0b3IsIHN0YWtlLCByZXdhcmRzX293bmVyXG4gIHNoYXJlcz86IG51bWJlcjsgLy8gMTAsMDAwIHggcGVyY2VudGFnZSBvZiByZXdhcmQgdGFrZW4gZnJvbSBkZWxlZ2F0b3JzXG59XG5cbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uVHlwZXMge1xuICBhZGREZWxlZ2F0b3IgPSAnYWRkRGVsZWdhdG9yJyxcbiAgYWRkVmFsaWRhdG9yID0gJ2FkZFZhbGlkYXRvcicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgdHlwZV9pZDogbnVtYmVyO1xuICBpbnB1dDogVHJhbnNmZXJhYmxlSW5wdXQ7XG4gIG91dHB1dDogVHJhbnNmZXJhYmxlT3V0cHV0O1xuICBibG9ja2NoYWluX2lkOiBzdHJpbmc7XG4gIG1lbW8/OiBzdHJpbmc7XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7O0dBRUc7QUFDSCxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsNkRBQVksQ0FBQTtJQUNaLDZEQUFZLENBQUE7QUFDZCxDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUE2QkQsSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLGlEQUE2QixDQUFBO0lBQzdCLGlEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUczQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZmVyYWJsZUlucHV0LCBUcmFuc2ZlcmFibGVPdXRwdXQgfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL3BsYXRmb3Jtdm0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbi8qKlxuICogTWV0aG9kIG5hbWVzIGZvciB0aGUgdHJhbnNhY3Rpb24gbWV0aG9kLiBOYW1lcyBjaGFuZ2UgYmFzZWQgb24gdGhlIHR5cGUgb2YgdHJhbnNhY3Rpb24gZS5nICdib25kJyBmb3IgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGVudW0gTWV0aG9kTmFtZXMge1xuICBhZGREZWxlZ2F0b3IsXG4gIGFkZFZhbGlkYXRvcixcbn1cblxuLyoqXG4gKiBUaGUgdHJhbnNhY3Rpb24gZGF0YSByZXR1cm5lZCBmcm9tIHRoZSB0b0pzb24oKSBmdW5jdGlvbiBvZiBhIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgLy8gbWFuZGF0b3J5IGJhc2UgVHhcbiAgdHlwZUlEOiBudW1iZXI7XG4gIG5ldHdvcmtfaWQ6IG51bWJlcjtcbiAgYmxvY2tjaGFpbl9pZDogc3RyaW5nO1xuICBvdXRwdXRzOiBUcmFuc2ZlcmFibGVPdXRwdXRbXTtcbiAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICBtZW1vOiBzdHJpbmc7XG4gIC8vIFRPRE8oU1RMWC0xNjU3MCk6IFthdmF4LWxpYl0gZXhwbGFpblRyYW5zYWN0aW9uXG4gIC8vIGFkZERlbGVnYXRvciBleHRlbmRzIEJhc2VUeFxuICAvLyB2YWxpZGF0b3I/OiB7XG4gIC8vICAgbm9kZUlEOiBzdHJpbmc7XG4gIC8vICAgc3RhcnRUaW1lOiBudW1iZXI7IC8vIHVuaXggdGltZVxuICAvLyAgIGVuZFRpbWU6IG51bWJlcjsgLy8gdW5peCB0aW1lXG4gIC8vICAgd2VpZ2h0OiBudW1iZXI7IC8vIGFtb3VudCBkZWxlZ2F0b3Igc3Rha2VzXG4gIC8vIH07XG4gIC8vIHN0YWtlPzoge1xuICAvLyAgIGxvY2tlZE91dHM6IFRyYW5zZmVyYWJsZU91dHB1dFtdOyAvLyBhcnJheSBvZiB0cmFuc2ZlcmFibGUgb3V0cHV0cyB0aGF0IGFyZSBsb2NrZWQgZHVyaW5nIHN0YWtpbmcgcGVyaW9kXG4gIC8vIH07XG4gIC8vIHJld2FyZHNfb3duZXI/OiBTRUNQT3duZXJPdXRwdXQ7XG4gIC8vIC8vIGFkZFZhbGlkYXRvciBleHRlbmRzIEJhc2VUeCwgdmFsaWRhdG9yLCBzdGFrZSwgcmV3YXJkc19vd25lclxuICAvLyBzaGFyZXM/OiBudW1iZXI7IC8vIDEwLDAwMCB4IHBlcmNlbnRhZ2Ugb2YgcmV3YXJkIHRha2VuIGZyb20gZGVsZWdhdG9yc1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblR5cGVzIHtcbiAgYWRkRGVsZWdhdG9yID0gJ2FkZERlbGVnYXRvcicsXG4gIGFkZFZhbGlkYXRvciA9ICdhZGRWYWxpZGF0b3InLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHR5cGVfaWQ6IG51bWJlcjtcbiAgaW5wdXQ6IFRyYW5zZmVyYWJsZUlucHV0O1xuICBvdXRwdXQ6IFRyYW5zZmVyYWJsZU91dHB1dDtcbiAgYmxvY2tjaGFpbl9pZDogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlY29kZWQgVVRYTyBvYmplY3QuIFRoaXMgaXMgZm9yIGEgc2luZ2xlIHV0eG9cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gb3V0cHV0SURcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgQW1vdW50IGFzIGEgQmlnIE51bWJlciBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eGlkIFRyYW5zYWN0aW9uIElEIGVuY29kZWQgYXMgY2I1OFxuICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dGlkeCBPdXRwdXQgaW5kZXggYXMgYSBzdHJpbmdcbiAqL1xuZXhwb3J0IHR5cGUgRGVjb2RlZFV0eG9PYmogPSB7XG4gIG91dHB1dElEOiBudW1iZXI7XG4gIGFtb3VudDogc3RyaW5nO1xuICB0eGlkOiBzdHJpbmc7XG4gIG91dHB1dGlkeDogc3RyaW5nO1xufTtcbiJdfQ==
@@ -1,7 +1,19 @@
1
1
  import * as Utils from './utils';
2
+ import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
4
  export { KeyPair } from './keyPair';
3
5
  export { Transaction } from './transaction';
4
6
  export { TransactionBuilder } from './transactionBuilder';
5
7
  export { TransactionBuilderFactory } from './transactionBuilderFactory';
6
8
  export { Utils };
9
+ /**
10
+ * Register a new coin instance with its builder factory
11
+ *
12
+ * @param {string} coinName coin name as it was registered in @bitgo/statics
13
+ * @param {any} builderFactory the builder factory class for that coin
14
+ * @returns {any} the factory instance for the registered coin
15
+ */
16
+ export declare function register<T extends BaseTransactionBuilderFactory>(coinName: string, builderFactory: {
17
+ new (_coinConfig: Readonly<CoinConfig>): T;
18
+ }): T;
7
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAS,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,6BAA6B,EAC9D,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE;IAAE,KAAK,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;CAAE,GAC7D,CAAC,CAMH"}
package/dist/src/index.js CHANGED
@@ -19,9 +19,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.Utils = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
22
+ exports.register = exports.Utils = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
23
23
  const Utils = __importStar(require("./utils"));
24
24
  exports.Utils = Utils;
25
+ const statics_1 = require("@bitgo/statics");
25
26
  var keyPair_1 = require("./keyPair");
26
27
  Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
27
28
  var transaction_1 = require("./transaction");
@@ -30,4 +31,19 @@ var transactionBuilder_1 = require("./transactionBuilder");
30
31
  Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
31
32
  var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
32
33
  Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUt4QixzQkFBSztBQUpkLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIsNkNBQTRDO0FBQW5DLDBHQUFBLFdBQVcsT0FBQTtBQUNwQiwyREFBMEQ7QUFBakQsd0hBQUEsa0JBQWtCLE9BQUE7QUFDM0IseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCB7IFV0aWxzIH07XG4iXX0=
34
+ /**
35
+ * Register a new coin instance with its builder factory
36
+ *
37
+ * @param {string} coinName coin name as it was registered in @bitgo/statics
38
+ * @param {any} builderFactory the builder factory class for that coin
39
+ * @returns {any} the factory instance for the registered coin
40
+ */
41
+ function register(coinName, builderFactory) {
42
+ const coinConfig = statics_1.coins.get(coinName);
43
+ const factory = new builderFactory(coinConfig);
44
+ // coinBuilderMap[coinName] = factory;
45
+ // coinBuilderMap[coinName] = builderFactory; // For now register the constructor function until reimplement getBuilder method
46
+ return factory;
47
+ }
48
+ exports.register = register;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQU94QixzQkFBSztBQUxkLDRDQUErRDtBQUMvRCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQTtBQUdsQzs7Ozs7O0dBTUc7QUFDSCxTQUFnQixRQUFRLENBQ3RCLFFBQWdCLEVBQ2hCLGNBQThEO0lBRTlELE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0Msc0NBQXNDO0lBQ3RDLDhIQUE4SDtJQUM5SCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBVEQsNEJBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcsIGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBVdGlscyB9O1xuXG4vKipcbiAqIFJlZ2lzdGVyIGEgbmV3IGNvaW4gaW5zdGFuY2Ugd2l0aCBpdHMgYnVpbGRlciBmYWN0b3J5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvaW5OYW1lIGNvaW4gbmFtZSBhcyBpdCB3YXMgcmVnaXN0ZXJlZCBpbiBAYml0Z28vc3RhdGljc1xuICogQHBhcmFtIHthbnl9IGJ1aWxkZXJGYWN0b3J5IHRoZSBidWlsZGVyIGZhY3RvcnkgY2xhc3MgZm9yIHRoYXQgY29pblxuICogQHJldHVybnMge2FueX0gdGhlIGZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSByZWdpc3RlcmVkIGNvaW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyPFQgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeT4oXG4gIGNvaW5OYW1lOiBzdHJpbmcsXG4gIGJ1aWxkZXJGYWN0b3J5OiB7IG5ldyAoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KTogVCB9XG4pOiBUIHtcbiAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldChjb2luTmFtZSk7XG4gIGNvbnN0IGZhY3RvcnkgPSBuZXcgYnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gIC8vIGNvaW5CdWlsZGVyTWFwW2NvaW5OYW1lXSA9IGZhY3Rvcnk7XG4gIC8vIGNvaW5CdWlsZGVyTWFwW2NvaW5OYW1lXSA9IGJ1aWxkZXJGYWN0b3J5OyAvLyBGb3Igbm93IHJlZ2lzdGVyIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiB1bnRpbCByZWltcGxlbWVudCBnZXRCdWlsZGVyIG1ldGhvZFxuICByZXR1cm4gZmFjdG9yeTtcbn1cbiJdfQ==
@@ -1,4 +1,6 @@
1
1
  import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo/sdk-core';
2
+ export declare const testnet = "fuji";
3
+ export declare const mainnet = "avax";
2
4
  export declare class KeyPair extends Secp256k1ExtendedKeyPair {
3
5
  /**
4
6
  * Public constructor. By default, creates a key pair with a random master seed.
@@ -29,7 +31,7 @@ export declare class KeyPair extends Secp256k1ExtendedKeyPair {
29
31
  *
30
32
  * @returns {string} The mainnet address derived from the public key
31
33
  */
32
- getAddress(): string;
34
+ getAddress(format?: string): string;
33
35
  /**
34
36
  * Get a public address of public key.
35
37
  *
@@ -1 +1 @@
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;AAYzB,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,IAAI,MAAM;IAIpB;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAKrC"}
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"}
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.KeyPair = void 0;
25
+ exports.KeyPair = exports.mainnet = exports.testnet = void 0;
26
26
  const sdk_core_1 = require("@bitgo/sdk-core");
27
27
  const avalanche_1 = require("avalanche");
28
28
  const common_1 = require("avalanche/dist/common");
@@ -30,9 +30,10 @@ const bech32_1 = require("bech32");
30
30
  const bip32 = __importStar(require("bip32"));
31
31
  const bitcoinjs_lib_1 = require("bitcoinjs-lib");
32
32
  const crypto_1 = require("crypto");
33
- const constants_1 = require("./constants");
34
33
  const utils_1 = __importDefault(require("./utils"));
35
34
  const DEFAULT_SEED_SIZE_BYTES = 16;
35
+ exports.testnet = 'fuji';
36
+ exports.mainnet = 'avax';
36
37
  class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
37
38
  /**
38
39
  * Public constructor. By default, creates a key pair with a random master seed.
@@ -110,8 +111,8 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
110
111
  *
111
112
  * @returns {string} The mainnet address derived from the public key
112
113
  */
113
- getAddress() {
114
- return this.getAvaxPAddress(constants_1.mainnet);
114
+ getAddress(format = exports.mainnet) {
115
+ return this.getAvaxPAddress(format);
115
116
  }
116
117
  /**
117
118
  * Get a public address of public key.
@@ -126,4 +127,4 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
126
127
  }
127
128
  }
128
129
  exports.KeyPair = KeyPair;
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FTeUI7QUFDekIseUNBQWlEO0FBQ2pELGtEQUF5RDtBQUN6RCxtQ0FBZ0M7QUFDaEMsNkNBQStCO0FBQy9CLGlEQUF1QztBQUN2QyxtQ0FBcUM7QUFDckMsMkNBQXNDO0FBQ3RDLG9EQUE0QjtBQUU1QixNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUVuQyxNQUFhLE9BQVEsU0FBUSxtQ0FBd0I7SUFDbkQ7Ozs7T0FJRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sSUFBSSxHQUFHLG9CQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7YUFBTSxJQUFJLGlCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQzthQUFNLElBQUksdUJBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNDO2FBQU0sSUFBSSxzQkFBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsbUNBQXdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsR0FBVztRQUNsQyxJQUFJLENBQUMsZUFBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1QztRQUNELElBQUksc0JBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsc0JBQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzVFO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx1QkFBdUIsQ0FBQyxHQUFXO1FBQ2pDLElBQUksQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxzQkFBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxzQkFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPOztRQUNMLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDNUQsR0FBRyxFQUFFLE1BQUEsSUFBSSxDQUFDLGFBQWEsRUFBRSwwQ0FBRSxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxHQUFXO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLGtCQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsTUFBTSxjQUFjLEdBQWUseUJBQWdCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEYsT0FBTyxlQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxlQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBMUZELDBCQTBGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlZmF1bHRLZXlzLFxuICBpc1ByaXZhdGVLZXksXG4gIGlzUHVibGljS2V5LFxuICBpc1NlZWQsXG4gIGlzVmFsaWRYcHJ2LFxuICBpc1ZhbGlkWHB1YixcbiAgS2V5UGFpck9wdGlvbnMsXG4gIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpcixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJ1ZmZlciBhcyBCdWZmZXJBdmF4IH0gZnJvbSAnYXZhbGFuY2hlJztcbmltcG9ydCB7IFNFQ1AyNTZrMUtleVBhaXIgfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9jb21tb24nO1xuaW1wb3J0IHsgYmVjaDMyIH0gZnJvbSAnYmVjaDMyJztcbmltcG9ydCAqIGFzIGJpcDMyIGZyb20gJ2JpcDMyJztcbmltcG9ydCB7IEVDUGFpciB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgbWFpbm5ldCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgREVGQVVMVF9TRUVEX1NJWkVfQllURVMgPSAxNjtcblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICBjb25zdCBzZWVkID0gcmFuZG9tQnl0ZXMoREVGQVVMVF9TRUVEX1NJWkVfQllURVMpO1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzU2VlZChzb3VyY2UpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNvdXJjZS5zZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzUHJpdmF0ZUtleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShzb3VyY2UucHJ2KTtcbiAgICB9IGVsc2UgaWYgKGlzUHVibGljS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkoc291cmNlLnB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGROb2RlKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIudG9LZXlQYWlyKHRoaXMuaGROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBrZXlwYWlyIGZyb20gYSBwcm90b2NvbCBwcml2YXRlIGtleSBvciBleHRlbmRlZCBwcml2YXRlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBydiBBIHJhdyBwcml2YXRlIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHBydjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShwcnYpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIGlmIChpc1ZhbGlkWHBydihwcnYpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHJ2KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21Qcml2YXRlS2V5KEJ1ZmZlci5mcm9tKHBydi5zbGljZSgwLCA2NCksICdoZXgnKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIEVDUGFpciBmcm9tIGEgcHJvdG9jb2wgcHVibGljIGtleSBvciBleHRlbmRlZCBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHViIEEgcmF3IHB1YmxpYyBrZXlcbiAgICovXG4gIHJlY29yZEtleXNGcm9tUHVibGljS2V5KHB1Yjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHVibGljS2V5KHB1YikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHVibGljIGtleScpO1xuICAgIH1cbiAgICBpZiAoaXNWYWxpZFhwdWIocHViKSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IEVDUGFpci5mcm9tUHVibGljS2V5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmYXVsdCBrZXlzIGZvcm1hdCBpcyBhIHBhaXIgb2YgVWludDhBcnJheSBrZXlzXG4gICAqXG4gICAqIEByZXR1cm5zIHsgRGVmYXVsdEtleXMgfSBUaGUga2V5cyBpbiB0aGUgZGVmaW5lZCBmb3JtYXRcbiAgICovXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIHJldHVybiB7XG4gICAgICBwdWI6IHRoaXMuZ2V0UHVibGljS2V5KHsgY29tcHJlc3NlZDogdHJ1ZSB9KS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcnY6IHRoaXMuZ2V0UHJpdmF0ZUtleSgpPy50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gQXZhbGFuY2hlIFAtQ2hhaW4gcHVibGljIG1haW5uZXQgYWRkcmVzc1xuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgbWFpbm5ldCBhZGRyZXNzIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleVxuICAgKi9cbiAgZ2V0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEF2YXhQQWRkcmVzcyhtYWlubmV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBwdWJsaWMgYWRkcmVzcyBvZiBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaHJwIC0gc2VsZWN0IE1haW5uZXQoYXZheCkgb3IgVGVzdG5ldChmdWppKSBmb3IgdGhlIGFkZHJlc3NcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGFkZHJlc3MgZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5IGFuZCBocnBcbiAgICovXG4gIGdldEF2YXhQQWRkcmVzcyhocnA6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcHVibGljS2V5ID0gQnVmZmVyQXZheC5mcm9tKHRoaXMuZ2V0S2V5cygpLnB1YiwgJ2hleCcpO1xuICAgIGNvbnN0IGFkZHJyZXNzQnVmZmVyOiBCdWZmZXJBdmF4ID0gU0VDUDI1NmsxS2V5UGFpci5hZGRyZXNzRnJvbVB1YmxpY0tleShwdWJsaWNLZXkpO1xuICAgIHJldHVybiBiZWNoMzIuZW5jb2RlKGhycCwgYmVjaDMyLnRvV29yZHMoYWRkcnJlc3NCdWZmZXIpKTtcbiAgfVxufVxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FTeUI7QUFDekIseUNBQWlEO0FBQ2pELGtEQUF5RDtBQUN6RCxtQ0FBZ0M7QUFDaEMsNkNBQStCO0FBQy9CLGlEQUF1QztBQUN2QyxtQ0FBcUM7QUFDckMsb0RBQTRCO0FBRTVCLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLFFBQUEsT0FBTyxHQUFHLE1BQU0sQ0FBQztBQUNqQixRQUFBLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFFOUIsTUFBYSxPQUFRLFNBQVEsbUNBQXdCO0lBQ25EOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxvQkFBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxpQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7YUFBTSxJQUFJLHVCQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQzthQUFNLElBQUksc0JBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLG1DQUF3QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHdCQUF3QixDQUFDLEdBQVc7UUFDbEMsSUFBSSxDQUFDLGVBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLHNCQUFXLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsdUJBQXVCLENBQUMsR0FBVztRQUNqQyxJQUFJLENBQUMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksc0JBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsc0JBQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTzs7UUFDTCxPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzVELEdBQUcsRUFBRSxNQUFBLElBQUksQ0FBQyxhQUFhLEVBQUUsMENBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsU0FBaUIsZUFBTztRQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLEdBQVc7UUFDekIsTUFBTSxTQUFTLEdBQUcsa0JBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBZSx5QkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRixPQUFPLGVBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGVBQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUExRkQsMEJBMEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVmYXVsdEtleXMsXG4gIGlzUHJpdmF0ZUtleSxcbiAgaXNQdWJsaWNLZXksXG4gIGlzU2VlZCxcbiAgaXNWYWxpZFhwcnYsXG4gIGlzVmFsaWRYcHViLFxuICBLZXlQYWlyT3B0aW9ucyxcbiAgU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQnVmZmVyIGFzIEJ1ZmZlckF2YXggfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgU0VDUDI1NmsxS2V5UGFpciB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2NvbW1vbic7XG5pbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInO1xuaW1wb3J0ICogYXMgYmlwMzIgZnJvbSAnYmlwMzInO1xuaW1wb3J0IHsgRUNQYWlyIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gMTY7XG5leHBvcnQgY29uc3QgdGVzdG5ldCA9ICdmdWppJztcbmV4cG9ydCBjb25zdCBtYWlubmV0ID0gJ2F2YXgnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNlZWQgPSByYW5kb21CeXRlcyhERUZBVUxUX1NFRURfU0laRV9CWVRFUyk7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNTZWVkKHNvdXJjZSkpIHtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc291cmNlLnNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNQcml2YXRlS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHNvdXJjZS5wcnYpO1xuICAgIH0gZWxzZSBpZiAoaXNQdWJsaWNLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5yZWNvcmRLZXlzRnJvbVB1YmxpY0tleShzb3VyY2UucHViKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleSBwYWlyIG9wdGlvbnMnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oZE5vZGUpIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpci50b0tleVBhaXIodGhpcy5oZE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGtleXBhaXIgZnJvbSBhIHByb3RvY29sIHByaXZhdGUga2V5IG9yIGV4dGVuZGVkIHByaXZhdGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJ2IEEgcmF3IHByaXZhdGUga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KHBydikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgaWYgKGlzVmFsaWRYcHJ2KHBydikpIHtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbUJhc2U1OChwcnYpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBFQ1BhaXIuZnJvbVByaXZhdGVLZXkoQnVmZmVyLmZyb20ocHJ2LnNsaWNlKDAsIDY0KSwgJ2hleCcpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW4gRUNQYWlyIGZyb20gYSBwcm90b2NvbCBwdWJsaWMga2V5IG9yIGV4dGVuZGVkIHB1YmxpYyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWIgQSByYXcgcHVibGljIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkocHViOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICAgIGlmIChpc1ZhbGlkWHB1YihwdWIpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHViKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21QdWJsaWNLZXkoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGtleXMgZm9ybWF0IGlzIGEgcGFpciBvZiBVaW50OEFycmF5IGtleXNcbiAgICpcbiAgICogQHJldHVybnMgeyBEZWZhdWx0S2V5cyB9IFRoZSBrZXlzIGluIHRoZSBkZWZpbmVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkOiB0cnVlIH0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydjogdGhpcy5nZXRQcml2YXRlS2V5KCk/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBBdmFsYW5jaGUgUC1DaGFpbiBwdWJsaWMgbWFpbm5ldCBhZGRyZXNzXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBtYWlubmV0IGFkZHJlc3MgZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5XG4gICAqL1xuICBnZXRBZGRyZXNzKGZvcm1hdDogc3RyaW5nID0gbWFpbm5ldCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXZheFBBZGRyZXNzKGZvcm1hdCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgcHVibGljIGFkZHJlc3Mgb2YgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhycCAtIHNlbGVjdCBNYWlubmV0KGF2YXgpIG9yIFRlc3RuZXQoZnVqaSkgZm9yIHRoZSBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhZGRyZXNzIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleSBhbmQgaHJwXG4gICAqL1xuICBnZXRBdmF4UEFkZHJlc3MoaHJwOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IEJ1ZmZlckF2YXguZnJvbSh0aGlzLmdldEtleXMoKS5wdWIsICdoZXgnKTtcbiAgICBjb25zdCBhZGRycmVzc0J1ZmZlcjogQnVmZmVyQXZheCA9IFNFQ1AyNTZrMUtleVBhaXIuYWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5KTtcbiAgICByZXR1cm4gYmVjaDMyLmVuY29kZShocnAsIGJlY2gzMi50b1dvcmRzKGFkZHJyZXNzQnVmZmVyKSk7XG4gIH1cbn1cbiJdfQ==
@@ -2,26 +2,35 @@ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
2
  import { BaseKey, BaseTransaction, TransactionType } from '@bitgo/sdk-core';
3
3
  import { KeyPair } from './keyPair';
4
4
  import { TxData } from './iface';
5
- import { UnsignedTx } from 'avalanche/dist/apis/platformvm/tx';
6
- import { BaseTx } from 'avalanche/dist/apis/platformvm/basetx';
5
+ import { UnsignedTx, BaseTx } from 'avalanche/dist/apis/platformvm';
7
6
  export declare class Transaction extends BaseTransaction {
8
7
  protected _avaxpTransaction: UnsignedTx;
9
8
  protected _avaxpBaseTransaction: BaseTx;
10
9
  private _sender;
11
10
  protected _type: TransactionType;
11
+ protected _chainID: string;
12
+ protected _hrp: string;
12
13
  constructor(coinConfig: Readonly<CoinConfig>);
14
+ get avaxPTransaction(): BaseTx;
15
+ set avaxPTransaction(tx: BaseTx);
13
16
  /** @inheritdoc */
14
17
  canSign({ key }: BaseKey): boolean;
15
18
  /**
16
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
17
24
  *
18
25
  * @param {KeyPair} keyPair
19
26
  */
20
27
  sign(keyPair: KeyPair): void;
21
28
  sender(sender: string): void;
22
29
  /** @inheritdoc */
30
+ /**
31
+ * should be of signedTx doing this with baseTx
32
+ */
23
33
  toBroadcastFormat(): string;
24
- /** @inheritdoc */
25
34
  toJson(): TxData;
26
35
  setTransaction(tx: UnsignedTx): void;
27
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAqC,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,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;gBAErB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAIlC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ5B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAK3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAIhB,cAAc,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAIpC;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAG3D"}
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"}