@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.
- package/dist/src/delegatorTxBuilder.d.ts +89 -0
- package/dist/src/delegatorTxBuilder.d.ts.map +1 -0
- package/dist/src/delegatorTxBuilder.js +183 -0
- package/dist/src/iface.d.ts +15 -12
- package/dist/src/iface.d.ts.map +1 -1
- package/dist/src/iface.js +1 -1
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -2
- package/dist/src/keyPair.d.ts +3 -1
- package/dist/src/keyPair.d.ts.map +1 -1
- package/dist/src/keyPair.js +6 -5
- package/dist/src/transaction.d.ts +12 -3
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/transaction.js +54 -6
- package/dist/src/transactionBuilder.d.ts +47 -10
- package/dist/src/transactionBuilder.d.ts.map +1 -1
- package/dist/src/transactionBuilder.js +118 -17
- package/dist/src/transactionBuilderFactory.d.ts +8 -10
- package/dist/src/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/transactionBuilderFactory.js +30 -15
- package/dist/src/transferBuilder.d.ts +2 -1
- package/dist/src/transferBuilder.d.ts.map +1 -1
- package/dist/src/transferBuilder.js +1 -1
- package/dist/src/utils.d.ts +18 -5
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +27 -13
- package/dist/src/validatorTxBuilder.d.ts +32 -0
- package/dist/src/validatorTxBuilder.d.ts.map +1 -0
- package/dist/src/validatorTxBuilder.js +58 -0
- package/dist/tsconfig.tsbuildinfo +4075 -1820
- package/package.json +4 -4
- package/CHANGELOG.md +0 -70
- package/dist/src/constants.d.ts +0 -10
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -12
- package/dist/src/walletInitializationBuilder.d.ts +0 -17
- package/dist/src/walletInitializationBuilder.d.ts.map +0 -1
- 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=
|
package/dist/src/iface.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TransferableInput, TransferableOutput
|
|
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
|
package/dist/src/iface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../src/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,
|
|
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,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7O0dBRUc7QUFDSCxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsNkRBQVksQ0FBQTtJQUNaLDZEQUFZLENBQUE7QUFDZCxDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUE2QkQsSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLGlEQUE2QixDQUFBO0lBQzdCLGlEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUczQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZmVyYWJsZUlucHV0LCBUcmFuc2ZlcmFibGVPdXRwdXQgfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL3BsYXRmb3Jtdm0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbi8qKlxuICogTWV0aG9kIG5hbWVzIGZvciB0aGUgdHJhbnNhY3Rpb24gbWV0aG9kLiBOYW1lcyBjaGFuZ2UgYmFzZWQgb24gdGhlIHR5cGUgb2YgdHJhbnNhY3Rpb24gZS5nICdib25kJyBmb3IgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGVudW0gTWV0aG9kTmFtZXMge1xuICBhZGREZWxlZ2F0b3IsXG4gIGFkZFZhbGlkYXRvcixcbn1cblxuLyoqXG4gKiBUaGUgdHJhbnNhY3Rpb24gZGF0YSByZXR1cm5lZCBmcm9tIHRoZSB0b0pzb24oKSBmdW5jdGlvbiBvZiBhIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgLy8gbWFuZGF0b3J5IGJhc2UgVHhcbiAgdHlwZUlEOiBudW1iZXI7XG4gIG5ldHdvcmtfaWQ6IG51bWJlcjtcbiAgYmxvY2tjaGFpbl9pZDogc3RyaW5nO1xuICBvdXRwdXRzOiBUcmFuc2ZlcmFibGVPdXRwdXRbXTtcbiAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICBtZW1vOiBzdHJpbmc7XG4gIC8vIFRPRE8oU1RMWC0xNjU3MCk6IFthdmF4LWxpYl0gZXhwbGFpblRyYW5zYWN0aW9uXG4gIC8vIGFkZERlbGVnYXRvciBleHRlbmRzIEJhc2VUeFxuICAvLyB2YWxpZGF0b3I/OiB7XG4gIC8vICAgbm9kZUlEOiBzdHJpbmc7XG4gIC8vICAgc3RhcnRUaW1lOiBudW1iZXI7IC8vIHVuaXggdGltZVxuICAvLyAgIGVuZFRpbWU6IG51bWJlcjsgLy8gdW5peCB0aW1lXG4gIC8vICAgd2VpZ2h0OiBudW1iZXI7IC8vIGFtb3VudCBkZWxlZ2F0b3Igc3Rha2VzXG4gIC8vIH07XG4gIC8vIHN0YWtlPzoge1xuICAvLyAgIGxvY2tlZE91dHM6IFRyYW5zZmVyYWJsZU91dHB1dFtdOyAvLyBhcnJheSBvZiB0cmFuc2ZlcmFibGUgb3V0cHV0cyB0aGF0IGFyZSBsb2NrZWQgZHVyaW5nIHN0YWtpbmcgcGVyaW9kXG4gIC8vIH07XG4gIC8vIHJld2FyZHNfb3duZXI/OiBTRUNQT3duZXJPdXRwdXQ7XG4gIC8vIC8vIGFkZFZhbGlkYXRvciBleHRlbmRzIEJhc2VUeCwgdmFsaWRhdG9yLCBzdGFrZSwgcmV3YXJkc19vd25lclxuICAvLyBzaGFyZXM/OiBudW1iZXI7IC8vIDEwLDAwMCB4IHBlcmNlbnRhZ2Ugb2YgcmV3YXJkIHRha2VuIGZyb20gZGVsZWdhdG9yc1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblR5cGVzIHtcbiAgYWRkRGVsZWdhdG9yID0gJ2FkZERlbGVnYXRvcicsXG4gIGFkZFZhbGlkYXRvciA9ICdhZGRWYWxpZGF0b3InLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHR5cGVfaWQ6IG51bWJlcjtcbiAgaW5wdXQ6IFRyYW5zZmVyYWJsZUlucHV0O1xuICBvdXRwdXQ6IFRyYW5zZmVyYWJsZU91dHB1dDtcbiAgYmxvY2tjaGFpbl9pZDogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlY29kZWQgVVRYTyBvYmplY3QuIFRoaXMgaXMgZm9yIGEgc2luZ2xlIHV0eG9cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gb3V0cHV0SURcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgQW1vdW50IGFzIGEgQmlnIE51bWJlciBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eGlkIFRyYW5zYWN0aW9uIElEIGVuY29kZWQgYXMgY2I1OFxuICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dGlkeCBPdXRwdXQgaW5kZXggYXMgYSBzdHJpbmdcbiAqL1xuZXhwb3J0IHR5cGUgRGVjb2RlZFV0eG9PYmogPSB7XG4gIG91dHB1dElEOiBudW1iZXI7XG4gIGFtb3VudDogc3RyaW5nO1xuICB0eGlkOiBzdHJpbmc7XG4gIG91dHB1dGlkeDogc3RyaW5nO1xufTtcbiJdfQ==
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
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==
|
package/dist/src/keyPair.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/src/keyPair.js
CHANGED
|
@@ -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(
|
|
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,
|
|
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
|
|
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,
|
|
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"}
|