@bitgo/sdk-coin-avaxp 5.2.13 → 5.2.15
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/CHANGELOG.md +8 -0
- package/package.json +6 -6
- package/LICENSE +0 -191
- package/dist/src/avaxp.d.ts +0 -91
- package/dist/src/avaxp.d.ts.map +0 -1
- package/dist/src/avaxp.js +0 -343
- package/dist/src/iface.d.ts +0 -42
- package/dist/src/iface.d.ts.map +0 -1
- package/dist/src/iface.js +0 -3
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -45
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts +0 -21
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/atomicInCTransactionBuilder.js +0 -49
- package/dist/src/lib/atomicTransactionBuilder.d.ts +0 -38
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/atomicTransactionBuilder.js +0 -129
- package/dist/src/lib/delegatorTxBuilder.d.ts +0 -95
- package/dist/src/lib/delegatorTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/delegatorTxBuilder.js +0 -285
- package/dist/src/lib/deprecatedTransaction.d.ts +0 -98
- package/dist/src/lib/deprecatedTransaction.d.ts.map +0 -1
- package/dist/src/lib/deprecatedTransaction.js +0 -344
- package/dist/src/lib/deprecatedTransactionBuilder.d.ts +0 -114
- package/dist/src/lib/deprecatedTransactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/deprecatedTransactionBuilder.js +0 -210
- package/dist/src/lib/errors.d.ts +0 -8
- package/dist/src/lib/errors.d.ts.map +0 -1
- package/dist/src/lib/errors.js +0 -19
- package/dist/src/lib/exportInCTxBuilder.d.ts +0 -55
- package/dist/src/lib/exportInCTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportInCTxBuilder.js +0 -159
- package/dist/src/lib/exportTxBuilder.d.ts +0 -33
- package/dist/src/lib/exportTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportTxBuilder.js +0 -88
- package/dist/src/lib/iface.d.ts +0 -68
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -20
- package/dist/src/lib/importInCTxBuilder.d.ts +0 -44
- package/dist/src/lib/importInCTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/importInCTxBuilder.js +0 -131
- package/dist/src/lib/importTxBuilder.d.ts +0 -18
- package/dist/src/lib/importTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/importTxBuilder.js +0 -67
- package/dist/src/lib/index.d.ts +0 -11
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -37
- package/dist/src/lib/keyPair.d.ts +0 -58
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -150
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +0 -154
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/permissionlessValidatorTxBuilder.js +0 -452
- package/dist/src/lib/transaction.d.ts +0 -78
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -254
- package/dist/src/lib/transactionBuilder.d.ts +0 -71
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -138
- package/dist/src/lib/transactionBuilderFactory.d.ts +0 -57
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -178
- package/dist/src/lib/utils.d.ts +0 -184
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -378
- package/dist/src/lib/utxoEngine.d.ts +0 -53
- package/dist/src/lib/utxoEngine.d.ts.map +0 -1
- package/dist/src/lib/utxoEngine.js +0 -112
- package/dist/src/lib/validatorTxBuilder.d.ts +0 -37
- package/dist/src/lib/validatorTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/validatorTxBuilder.js +0 -69
- package/dist/src/register.d.ts +0 -3
- package/dist/src/register.d.ts.map +0 -1
- package/dist/src/register.js +0 -11
- package/dist/src/tavaxp.d.ts +0 -9
- package/dist/src/tavaxp.d.ts.map +0 -1
- package/dist/src/tavaxp.js +0 -14
- package/dist/test/resources/avaxp.d.ts +0 -259
- package/dist/test/resources/avaxp.d.ts.map +0 -1
- package/dist/test/resources/avaxp.js +0 -1093
- package/dist/test/resources/errors.d.ts +0 -19
- package/dist/test/resources/errors.d.ts.map +0 -1
- package/dist/test/resources/errors.js +0 -22
- package/dist/test/resources/keychains.d.ts +0 -18
- package/dist/test/resources/keychains.d.ts.map +0 -1
- package/dist/test/resources/keychains.js +0 -30
- package/dist/test/resources/tx/exportC.d.ts +0 -14
- package/dist/test/resources/tx/exportC.d.ts.map +0 -1
- package/dist/test/resources/tx/exportC.js +0 -21
- package/dist/test/resources/tx/importC.d.ts +0 -29
- package/dist/test/resources/tx/importC.d.ts.map +0 -1
- package/dist/test/resources/tx/importC.js +0 -42
- package/dist/test/resources/tx/importP.d.ts +0 -29
- package/dist/test/resources/tx/importP.d.ts.map +0 -1
- package/dist/test/resources/tx/importP.js +0 -42
- package/dist/test/unit/avaxp.d.ts +0 -2
- package/dist/test/unit/avaxp.d.ts.map +0 -1
- package/dist/test/unit/avaxp.js +0 -732
- package/dist/test/unit/lib/exportC2PTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/exportC2PTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/exportC2PTxBuilder.js +0 -125
- package/dist/test/unit/lib/exportP2CTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/exportP2CTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/exportP2CTxBuilder.js +0 -183
- package/dist/test/unit/lib/importC2PTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/importC2PTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/importC2PTxBuilder.js +0 -99
- package/dist/test/unit/lib/importP2CTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/importP2CTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/importP2CTxBuilder.js +0 -137
- package/dist/test/unit/lib/keyPair.d.ts +0 -2
- package/dist/test/unit/lib/keyPair.d.ts.map +0 -1
- package/dist/test/unit/lib/keyPair.js +0 -186
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.js +0 -341
- package/dist/test/unit/lib/signFlowTestSuit.d.ts +0 -20
- package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +0 -1
- package/dist/test/unit/lib/signFlowTestSuit.js +0 -80
- package/dist/test/unit/lib/transactionBuilderFactory.d.ts +0 -2
- package/dist/test/unit/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/lib/transactionBuilderFactory.js +0 -179
- package/dist/test/unit/lib/utils.d.ts +0 -2
- package/dist/test/unit/lib/utils.d.ts.map +0 -1
- package/dist/test/unit/lib/utils.js +0 -83
- package/dist/test/unit/lib/utxoEngine.d.ts +0 -2
- package/dist/test/unit/lib/utxoEngine.d.ts.map +0 -1
- package/dist/test/unit/lib/utxoEngine.js +0 -168
- package/dist/test/unit/lib/validateTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/validateTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/validateTxBuilder.js +0 -327
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ExportTxBuilder = void 0;
|
|
7
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
|
-
const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
|
|
9
|
-
const platformvm_1 = require("avalanche/dist/apis/platformvm");
|
|
10
|
-
const avalanche_1 = require("avalanche");
|
|
11
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
12
|
-
const utxoEngine_1 = require("./utxoEngine");
|
|
13
|
-
class ExportTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
|
|
14
|
-
constructor(_coinConfig) {
|
|
15
|
-
super(_coinConfig);
|
|
16
|
-
this._externalChainId = utils_1.default.cb58Decode(this.transaction._network.cChainBlockchainID);
|
|
17
|
-
}
|
|
18
|
-
get transactionType() {
|
|
19
|
-
return sdk_core_1.TransactionType.Export;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Amount is a long that specifies the quantity of the asset that this output owns. Must be positive.
|
|
23
|
-
*
|
|
24
|
-
* @param {BN | string} amount The withdrawal amount
|
|
25
|
-
*/
|
|
26
|
-
amount(value) {
|
|
27
|
-
const valueBN = avalanche_1.BN.isBN(value) ? value : new avalanche_1.BN(value);
|
|
28
|
-
this.validateAmount(valueBN);
|
|
29
|
-
this._amount = valueBN;
|
|
30
|
-
return this;
|
|
31
|
-
}
|
|
32
|
-
/** @inheritdoc */
|
|
33
|
-
initBuilder(tx) {
|
|
34
|
-
super.initBuilder(tx);
|
|
35
|
-
const baseTx = tx.getUnsignedTx().getTransaction();
|
|
36
|
-
if (!this.verifyTxType(baseTx)) {
|
|
37
|
-
throw new sdk_core_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
|
|
38
|
-
}
|
|
39
|
-
// The ExportOutputs is a {@link exportedOutputs} result.
|
|
40
|
-
// It's expected to have only one outputs with the addresses of the sender.
|
|
41
|
-
const outputs = baseTx.getExportOutputs();
|
|
42
|
-
if (outputs.length != 1) {
|
|
43
|
-
throw new sdk_core_1.BuildTransactionError('Transaction can have one external output');
|
|
44
|
-
}
|
|
45
|
-
const output = outputs[0];
|
|
46
|
-
if (!output.getAssetID().equals(this.transaction._assetId)) {
|
|
47
|
-
throw new Error('The Asset ID of the output does not match the transaction');
|
|
48
|
-
}
|
|
49
|
-
const secpOut = output.getOutput();
|
|
50
|
-
this.transaction._locktime = secpOut.getLocktime();
|
|
51
|
-
this.transaction._threshold = secpOut.getThreshold();
|
|
52
|
-
// output addresses are the sender addresses
|
|
53
|
-
this.transaction._fromAddresses = secpOut.getAddresses();
|
|
54
|
-
this._externalChainId = baseTx.getDestinationChain();
|
|
55
|
-
this._amount = secpOut.getAmount();
|
|
56
|
-
this.transaction._utxos = (0, utxoEngine_1.deprecatedRecoverUtxos)(baseTx.getIns());
|
|
57
|
-
return this;
|
|
58
|
-
}
|
|
59
|
-
static verifyTxType(baseTx) {
|
|
60
|
-
return baseTx.getTypeID() === platformvm_1.PlatformVMConstants.EXPORTTX;
|
|
61
|
-
}
|
|
62
|
-
verifyTxType(baseTx) {
|
|
63
|
-
return ExportTxBuilder.verifyTxType(baseTx);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Create the internal avalanche transaction.
|
|
67
|
-
* @protected
|
|
68
|
-
*/
|
|
69
|
-
buildAvaxTransaction() {
|
|
70
|
-
// if tx has credentials, tx shouldn't change
|
|
71
|
-
if (this.transaction.hasCredentials)
|
|
72
|
-
return;
|
|
73
|
-
const { inputs, outputs, credentials } = this.createInputOutput(this._amount.add(new avalanche_1.BN(this.transaction.fee.fee)));
|
|
74
|
-
this.transaction.setTransaction(new platformvm_1.Tx(new platformvm_1.UnsignedTx(new platformvm_1.ExportTx(this.transaction._networkID, this.transaction._blockchainID, outputs, inputs, undefined, this._externalChainId, this.exportedOutputs())), credentials));
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Create the ExportedOut where the recipient address are the sender.
|
|
78
|
-
* Later a importTx should complete the operations signing with the same keys.
|
|
79
|
-
* @protected
|
|
80
|
-
*/
|
|
81
|
-
exportedOutputs() {
|
|
82
|
-
return [
|
|
83
|
-
new platformvm_1.TransferableOutput(this.transaction._assetId, new platformvm_1.SECPTransferOutput(this._amount, this.transaction._fromAddresses, this.transaction._locktime, this.transaction._threshold)),
|
|
84
|
-
];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.ExportTxBuilder = ExportTxBuilder;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0VHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9leHBvcnRUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOENBQXVGO0FBQ3ZGLHlFQUFzRTtBQUN0RSwrREFPd0M7QUFDeEMseUNBQStCO0FBRS9CLG9EQUE0QjtBQUM1Qiw2Q0FBc0Q7QUFHdEQsTUFBYSxlQUFnQixTQUFRLG1EQUF3QjtJQUczRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFrQjtRQUN2QixNQUFNLE9BQU8sR0FBRyxjQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFnQjtRQUMxQixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUs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QUM1QixDQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhHRCwwQ0F3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBOb3RTdXBwb3J0ZWQsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2F0b21pY1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQge1xuICBFeHBvcnRUeCxcbiAgUGxhdGZvcm1WTUNvbnN0YW50cyxcbiAgU0VDUFRyYW5zZmVyT3V0cHV0LFxuICBUcmFuc2ZlcmFibGVPdXRwdXQsXG4gIFR4IGFzIFBWTVR4LFxuICBVbnNpZ25lZFR4LFxufSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL3BsYXRmb3Jtdm0nO1xuaW1wb3J0IHsgQk4gfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgQW1vdW50T3V0cHV0IH0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvYXBpcy9ldm0vb3V0cHV0cyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBkZXByZWNhdGVkUmVjb3ZlclV0eG9zIH0gZnJvbSAnLi91dHhvRW5naW5lJztcbmltcG9ydCB7IERlcHJlY2F0ZWRUeCwgRGVwcmVjYXRlZEJhc2VUeCB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgRXhwb3J0VHhCdWlsZGVyIGV4dGVuZHMgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfYW1vdW50OiBCTjtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkID0gdXRpbHMuY2I1OERlY29kZSh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLmNDaGFpbkJsb2NrY2hhaW5JRCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuRXhwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFtb3VudCBpcyBhIGxvbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHF1YW50aXR5IG9mIHRoZSBhc3NldCB0aGF0IHRoaXMgb3V0cHV0IG93bnMuIE11c3QgYmUgcG9zaXRpdmUuXG4gICAqXG4gICAqIEBwYXJhbSB7Qk4gfCBzdHJpbmd9IGFtb3VudCBUaGUgd2l0aGRyYXdhbCBhbW91bnRcbiAgICovXG4gIGFtb3VudCh2YWx1ZTogQk4gfCBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB2YWx1ZUJOID0gQk4uaXNCTih2YWx1ZSkgPyB2YWx1ZSA6IG5ldyBCTih2YWx1ZSk7XG4gICAgdGhpcy52YWxpZGF0ZUFtb3VudCh2YWx1ZUJOKTtcbiAgICB0aGlzLl9hbW91bnQgPSB2YWx1ZUJOO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBEZXByZWNhdGVkVHgpOiB0aGlzIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgY29uc3QgYmFzZVR4OiBEZXByZWNhdGVkQmFzZVR4ID0gdHguZ2V0VW5zaWduZWRUeCgpLmdldFRyYW5zYWN0aW9uKCk7XG4gICAgaWYgKCF0aGlzLnZlcmlmeVR4VHlwZShiYXNlVHgpKSB7XG4gICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiBjYW5ub3QgYmUgcGFyc2VkIG9yIGhhcyBhbiB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICAgIC8vIFRoZSBFeHBvcnRPdXRwdXRzIGlzIGEge0BsaW5rIGV4cG9ydGVkT3V0cHV0c30gcmVzdWx0LlxuICAgIC8vIEl0J3MgZXhwZWN0ZWQgdG8gaGF2ZSBvbmx5IG9uZSBvdXRwdXRzIHdpdGggdGhlIGFkZHJlc3NlcyBvZiB0aGUgc2VuZGVyLlxuICAgIGNvbnN0IG91dHB1dHMgPSBiYXNlVHguZ2V0RXhwb3J0T3V0cHV0cygpO1xuICAgIGlmIChvdXRwdXRzLmxlbmd0aCAhPSAxKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiBjYW4gaGF2ZSBvbmUgZXh0ZXJuYWwgb3V0cHV0Jyk7XG4gICAgfVxuICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07XG4gICAgaWYgKCFvdXRwdXQuZ2V0QXNzZXRJRCgpLmVxdWFscyh0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgQXNzZXQgSUQgb2YgdGhlIG91dHB1dCBkb2VzIG5vdCBtYXRjaCB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3Qgc2VjcE91dCA9IG91dHB1dC5nZXRPdXRwdXQoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9sb2NrdGltZSA9IHNlY3BPdXQuZ2V0TG9ja3RpbWUoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl90aHJlc2hvbGQgPSBzZWNwT3V0LmdldFRocmVzaG9sZCgpO1xuICAgIC8vIG91dHB1dCBhZGRyZXNzZXMgYXJlIHRoZSBzZW5kZXIgYWRkcmVzc2VzXG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3NlcyA9IHNlY3BPdXQuZ2V0QWRkcmVzc2VzKCk7XG4gICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkID0gYmFzZVR4LmdldERlc3RpbmF0aW9uQ2hhaW4oKTtcbiAgICB0aGlzLl9hbW91bnQgPSAoc2VjcE91dCBhcyBBbW91bnRPdXRwdXQpLmdldEFtb3VudCgpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3V0eG9zID0gZGVwcmVjYXRlZFJlY292ZXJVdHhvcyhiYXNlVHguZ2V0SW5zKCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RhdGljIHZlcmlmeVR4VHlwZShiYXNlVHg6IERlcHJlY2F0ZWRCYXNlVHgpOiBiYXNlVHggaXMgRXhwb3J0VHgge1xuICAgIHJldHVybiBiYXNlVHguZ2V0VHlwZUlEKCkgPT09IFBsYXRmb3JtVk1Db25zdGFudHMuRVhQT1JUVFg7XG4gIH1cblxuICB2ZXJpZnlUeFR5cGUoYmFzZVR4OiBEZXByZWNhdGVkQmFzZVR4KTogYmFzZVR4IGlzIEV4cG9ydFR4IHtcbiAgICByZXR1cm4gRXhwb3J0VHhCdWlsZGVyLnZlcmlmeVR4VHlwZShiYXNlVHgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgaW50ZXJuYWwgYXZhbGFuY2hlIHRyYW5zYWN0aW9uLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRBdmF4VHJhbnNhY3Rpb24oKTogdm9pZCB7XG4gICAgLy8gaWYgdHggaGFzIGNyZWRlbnRpYWxzLCB0eCBzaG91bGRuJ3QgY2hhbmdlXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaGFzQ3JlZGVudGlhbHMpIHJldHVybjtcbiAgICBjb25zdCB7IGlucHV0cywgb3V0cHV0cywgY3JlZGVudGlhbHMgfSA9IHRoaXMuY3JlYXRlSW5wdXRPdXRwdXQodGhpcy5fYW1vdW50LmFkZChuZXcgQk4odGhpcy50cmFuc2FjdGlvbi5mZWUuZmVlKSkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24oXG4gICAgICBuZXcgUFZNVHgoXG4gICAgICAgIG5ldyBVbnNpZ25lZFR4KFxuICAgICAgICAgIG5ldyBFeHBvcnRUeChcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmtJRCxcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCxcbiAgICAgICAgICAgIG91dHB1dHMsXG4gICAgICAgICAgICBpbnB1dHMsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICB0aGlzLl9leHRlcm5hbENoYWluSWQsXG4gICAgICAgICAgICB0aGlzLmV4cG9ydGVkT3V0cHV0cygpXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBjcmVkZW50aWFsc1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBFeHBvcnRlZE91dCB3aGVyZSB0aGUgcmVjaXBpZW50IGFkZHJlc3MgYXJlIHRoZSBzZW5kZXIuXG4gICAqIExhdGVyIGEgaW1wb3J0VHggc2hvdWxkIGNvbXBsZXRlIHRoZSBvcGVyYXRpb25zIHNpZ25pbmcgd2l0aCB0aGUgc2FtZSBrZXlzLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZXhwb3J0ZWRPdXRwdXRzKCk6IFRyYW5zZmVyYWJsZU91dHB1dFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgbmV3IFRyYW5zZmVyYWJsZU91dHB1dChcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCxcbiAgICAgICAgbmV3IFNFQ1BUcmFuc2Zlck91dHB1dChcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3NlcyxcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLl9sb2NrdGltZSxcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLl90aHJlc2hvbGRcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICBdO1xuICB9XG59XG4iXX0=
|
package/dist/src/lib/iface.d.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { TransactionExplanation as BaseTransactionExplanation, Entry, TransactionType } from '@bitgo/sdk-core';
|
|
2
|
-
import { EVMBaseTx as DeprecatedEVMBaseTx, EVMOutput, Tx as EVMTx } from 'avalanche/dist/apis/evm';
|
|
3
|
-
import { BaseTx as DeprecatedPMVBaseTx, Tx as PVMTx, TransferableOutput as DeprecatedTransferableOutput } from 'avalanche/dist/apis/platformvm';
|
|
4
|
-
import { avaxSerial, pvmSerial, UnsignedTx, TransferableOutput } from '@bitgo-forks/avalanchejs';
|
|
5
|
-
export interface AvaxpEntry extends Entry {
|
|
6
|
-
id: string;
|
|
7
|
-
}
|
|
8
|
-
export interface TransactionExplanation extends BaseTransactionExplanation {
|
|
9
|
-
type: TransactionType;
|
|
10
|
-
rewardAddresses: string[];
|
|
11
|
-
inputs: Entry[];
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
|
|
15
|
-
*/
|
|
16
|
-
export declare enum MethodNames {
|
|
17
|
-
addDelegator = 0,
|
|
18
|
-
addValidator = 1
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* The transaction data returned from the toJson() function of a transaction
|
|
22
|
-
*/
|
|
23
|
-
export interface TxData {
|
|
24
|
-
id: string;
|
|
25
|
-
inputs: Entry[];
|
|
26
|
-
type: TransactionType;
|
|
27
|
-
fromAddresses: string[];
|
|
28
|
-
threshold: number;
|
|
29
|
-
locktime: string;
|
|
30
|
-
signatures: string[];
|
|
31
|
-
outputs: Entry[];
|
|
32
|
-
changeOutputs: Entry[];
|
|
33
|
-
sourceChain?: string;
|
|
34
|
-
destinationChain?: string;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Decoded UTXO object. This is for a single utxo
|
|
38
|
-
*
|
|
39
|
-
* @param {number} outputID
|
|
40
|
-
* @param {string} amount Amount as a Big Number string
|
|
41
|
-
* @param {string} txid Transaction ID encoded as cb58
|
|
42
|
-
* @param {string} outputidx Output index as a string
|
|
43
|
-
*/
|
|
44
|
-
export type DecodedUtxoObj = {
|
|
45
|
-
outputID: number;
|
|
46
|
-
amount: string;
|
|
47
|
-
txid: string;
|
|
48
|
-
outputidx: string;
|
|
49
|
-
threshold: number;
|
|
50
|
-
addresses: string[];
|
|
51
|
-
addressesIndex?: number[];
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* TypeId value for SECP256K1 Transfer Output
|
|
55
|
-
*
|
|
56
|
-
* {@link https://docs.avax.network/specs/platform-transaction-serialization#secp256k1-transfer-output-example }
|
|
57
|
-
*/
|
|
58
|
-
export declare const SECP256K1_Transfer_Output = 7;
|
|
59
|
-
export declare const ADDRESS_SEPARATOR = "~";
|
|
60
|
-
export declare const INPUT_SEPARATOR = ":";
|
|
61
|
-
export type DeprecatedTx = PVMTx | EVMTx;
|
|
62
|
-
export type DeprecatedBaseTx = DeprecatedPMVBaseTx | DeprecatedEVMBaseTx;
|
|
63
|
-
export type Tx = DeprecatedTx | pvmSerial.BaseTx | UnsignedTx;
|
|
64
|
-
export type BaseTx = avaxSerial.BaseTx;
|
|
65
|
-
export type AvaxTx = avaxSerial.AvaxTx;
|
|
66
|
-
export type DeprecatedOutput = DeprecatedTransferableOutput | EVMOutput;
|
|
67
|
-
export type Output = TransferableOutput;
|
|
68
|
-
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,SAAS,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EACL,MAAM,IAAI,mBAAmB,EAC7B,EAAE,IAAI,KAAK,EACX,kBAAkB,IAAI,4BAA4B,EACnD,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACjG,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,EAAE,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,YAAY,IAAA;IACZ,YAAY,IAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;AACzC,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AACzE,MAAM,MAAM,EAAE,GAAG,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC;AAC9D,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACvC,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACvC,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,GAAG,SAAS,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC"}
|
package/dist/src/lib/iface.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.INPUT_SEPARATOR = exports.ADDRESS_SEPARATOR = exports.SECP256K1_Transfer_Output = exports.MethodNames = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
|
|
6
|
-
*/
|
|
7
|
-
var MethodNames;
|
|
8
|
-
(function (MethodNames) {
|
|
9
|
-
MethodNames[MethodNames["addDelegator"] = 0] = "addDelegator";
|
|
10
|
-
MethodNames[MethodNames["addValidator"] = 1] = "addValidator";
|
|
11
|
-
})(MethodNames || (exports.MethodNames = MethodNames = {}));
|
|
12
|
-
/**
|
|
13
|
-
* TypeId value for SECP256K1 Transfer Output
|
|
14
|
-
*
|
|
15
|
-
* {@link https://docs.avax.network/specs/platform-transaction-serialization#secp256k1-transfer-output-example }
|
|
16
|
-
*/
|
|
17
|
-
exports.SECP256K1_Transfer_Output = 7;
|
|
18
|
-
exports.ADDRESS_SEPARATOR = '~';
|
|
19
|
-
exports.INPUT_SEPARATOR = ':';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlCQTs7R0FFRztBQUNILElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQiw2REFBWSxDQUFBO0lBQ1osNkRBQVksQ0FBQTtBQUNkLENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFxQ0Q7Ozs7R0FJRztBQUNVLFFBQUEseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBRTlCLFFBQUEsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBQ3hCLFFBQUEsZUFBZSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIEVudHJ5LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgRVZNQmFzZVR4IGFzIERlcHJlY2F0ZWRFVk1CYXNlVHgsIEVWTU91dHB1dCwgVHggYXMgRVZNVHggfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL2V2bSc7XG5pbXBvcnQge1xuICBCYXNlVHggYXMgRGVwcmVjYXRlZFBNVkJhc2VUeCxcbiAgVHggYXMgUFZNVHgsXG4gIFRyYW5zZmVyYWJsZU91dHB1dCBhcyBEZXByZWNhdGVkVHJhbnNmZXJhYmxlT3V0cHV0LFxufSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL3BsYXRmb3Jtdm0nO1xuaW1wb3J0IHsgYXZheFNlcmlhbCwgcHZtU2VyaWFsLCBVbnNpZ25lZFR4LCBUcmFuc2ZlcmFibGVPdXRwdXQgfSBmcm9tICdAYml0Z28tZm9ya3MvYXZhbGFuY2hlanMnO1xuZXhwb3J0IGludGVyZmFjZSBBdmF4cEVudHJ5IGV4dGVuZHMgRW50cnkge1xuICBpZDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHJld2FyZEFkZHJlc3Nlczogc3RyaW5nW107XG4gIGlucHV0czogRW50cnlbXTtcbn1cblxuLyoqXG4gKiBNZXRob2QgbmFtZXMgZm9yIHRoZSB0cmFuc2FjdGlvbiBtZXRob2QuIE5hbWVzIGNoYW5nZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbiBlLmcgJ2JvbmQnIGZvciB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZW51bSBNZXRob2ROYW1lcyB7XG4gIGFkZERlbGVnYXRvcixcbiAgYWRkVmFsaWRhdG9yLFxufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEVudHJ5W107XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgZnJvbUFkZHJlc3Nlczogc3RyaW5nW107XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBsb2NrdGltZTogc3RyaW5nO1xuICBzaWduYXR1cmVzOiBzdHJpbmdbXTtcbiAgb3V0cHV0czogRW50cnlbXTtcbiAgY2hhbmdlT3V0cHV0czogRW50cnlbXTtcbiAgc291cmNlQ2hhaW4/OiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uQ2hhaW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVjb2RlZCBVVFhPIG9iamVjdC4gVGhpcyBpcyBmb3IgYSBzaW5nbGUgdXR4b1xuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBvdXRwdXRJRFxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCBBbW91bnQgYXMgYSBCaWcgTnVtYmVyIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IHR4aWQgVHJhbnNhY3Rpb24gSUQgZW5jb2RlZCBhcyBjYjU4XG4gKiBAcGFyYW0ge3N0cmluZ30gb3V0cHV0aWR4IE91dHB1dCBpbmRleCBhcyBhIHN0cmluZ1xuICovXG5leHBvcnQgdHlwZSBEZWNvZGVkVXR4b09iaiA9IHtcbiAgb3V0cHV0SUQ6IG51bWJlcjtcbiAgYW1vdW50OiBzdHJpbmc7XG4gIHR4aWQ6IHN0cmluZztcbiAgb3V0cHV0aWR4OiBzdHJpbmc7XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBhZGRyZXNzZXM6IHN0cmluZ1tdO1xuICBhZGRyZXNzZXNJbmRleD86IG51bWJlcltdO1xufTtcblxuLyoqXG4gKiBUeXBlSWQgdmFsdWUgZm9yIFNFQ1AyNTZLMSBUcmFuc2ZlciBPdXRwdXRcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF2YXgubmV0d29yay9zcGVjcy9wbGF0Zm9ybS10cmFuc2FjdGlvbi1zZXJpYWxpemF0aW9uI3NlY3AyNTZrMS10cmFuc2Zlci1vdXRwdXQtZXhhbXBsZSB9XG4gKi9cbmV4cG9ydCBjb25zdCBTRUNQMjU2SzFfVHJhbnNmZXJfT3V0cHV0ID0gNztcblxuZXhwb3J0IGNvbnN0IEFERFJFU1NfU0VQQVJBVE9SID0gJ34nO1xuZXhwb3J0IGNvbnN0IElOUFVUX1NFUEFSQVRPUiA9ICc6JztcbmV4cG9ydCB0eXBlIERlcHJlY2F0ZWRUeCA9IFBWTVR4IHwgRVZNVHg7XG5leHBvcnQgdHlwZSBEZXByZWNhdGVkQmFzZVR4ID0gRGVwcmVjYXRlZFBNVkJhc2VUeCB8IERlcHJlY2F0ZWRFVk1CYXNlVHg7XG5leHBvcnQgdHlwZSBUeCA9IERlcHJlY2F0ZWRUeCB8IHB2bVNlcmlhbC5CYXNlVHggfCBVbnNpZ25lZFR4O1xuZXhwb3J0IHR5cGUgQmFzZVR4ID0gYXZheFNlcmlhbC5CYXNlVHg7XG5leHBvcnQgdHlwZSBBdmF4VHggPSBhdmF4U2VyaWFsLkF2YXhUeDtcbmV4cG9ydCB0eXBlIERlcHJlY2F0ZWRPdXRwdXQgPSBEZXByZWNhdGVkVHJhbnNmZXJhYmxlT3V0cHV0IHwgRVZNT3V0cHV0O1xuZXhwb3J0IHR5cGUgT3V0cHV0ID0gVHJhbnNmZXJhYmxlT3V0cHV0O1xuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
-
import { TransactionType } from '@bitgo/sdk-core';
|
|
3
|
-
import { ImportTx, TransferableInput } from 'avalanche/dist/apis/evm';
|
|
4
|
-
import { BN } from 'avalanche';
|
|
5
|
-
import { Credential } from 'avalanche/dist/common';
|
|
6
|
-
import { DeprecatedBaseTx, DeprecatedTx } from './iface';
|
|
7
|
-
import { AtomicInCTransactionBuilder } from './atomicInCTransactionBuilder';
|
|
8
|
-
export declare class ImportInCTxBuilder extends AtomicInCTransactionBuilder {
|
|
9
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
10
|
-
/**
|
|
11
|
-
* C-chain address who is target of the import.
|
|
12
|
-
* Address format is eth like
|
|
13
|
-
* @param {string} cAddress
|
|
14
|
-
*/
|
|
15
|
-
to(cAddress: string): this;
|
|
16
|
-
protected get transactionType(): TransactionType;
|
|
17
|
-
/** @inheritdoc */
|
|
18
|
-
initBuilder(tx: DeprecatedTx): this;
|
|
19
|
-
static verifyTxType(baseTx: DeprecatedBaseTx): baseTx is ImportTx;
|
|
20
|
-
verifyTxType(baseTx: DeprecatedBaseTx): baseTx is ImportTx;
|
|
21
|
-
/**
|
|
22
|
-
* Build the import in C-chain transaction
|
|
23
|
-
* @protected
|
|
24
|
-
*/
|
|
25
|
-
protected buildAvaxTransaction(): void;
|
|
26
|
-
/**
|
|
27
|
-
* Create inputs by mapping {@see utxoEngine.utxoToInput} result.
|
|
28
|
-
* Reorder sender to handle recover signer.
|
|
29
|
-
* TransferableInput is a EVM Tx.
|
|
30
|
-
* @return {
|
|
31
|
-
* inputs: TransferableInput[];
|
|
32
|
-
* credentials: Credential[];
|
|
33
|
-
* amount: BN;
|
|
34
|
-
* } where amount is the sum of inputs amount and credentials has signer address to be replaced with correct signature.
|
|
35
|
-
* @protected
|
|
36
|
-
*
|
|
37
|
-
*/
|
|
38
|
-
protected createInputs(): {
|
|
39
|
-
inputs: TransferableInput[];
|
|
40
|
-
credentials: Credential[];
|
|
41
|
-
amount: BN;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=importInCTxBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"importInCTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/importInCTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAuC,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAGL,QAAQ,EAIR,iBAAiB,EAGlB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,qBAAa,kBAAmB,SAAQ,2BAA2B;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK1B,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IA6CnC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,QAAQ;IAIjE,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,QAAQ;IAI1D;;;OAGG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAuCtC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,YAAY,IAAI;QACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,MAAM,EAAE,EAAE,CAAC;KACZ;CA8BF"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ImportInCTxBuilder = void 0;
|
|
7
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
|
-
const evm_1 = require("avalanche/dist/apis/evm");
|
|
9
|
-
const utils_1 = require("avalanche/dist/utils");
|
|
10
|
-
const avalanche_1 = require("avalanche");
|
|
11
|
-
const utxoEngine_1 = require("./utxoEngine");
|
|
12
|
-
const atomicInCTransactionBuilder_1 = require("./atomicInCTransactionBuilder");
|
|
13
|
-
const utils_2 = __importDefault(require("./utils"));
|
|
14
|
-
class ImportInCTxBuilder extends atomicInCTransactionBuilder_1.AtomicInCTransactionBuilder {
|
|
15
|
-
constructor(_coinConfig) {
|
|
16
|
-
super(_coinConfig);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* C-chain address who is target of the import.
|
|
20
|
-
* Address format is eth like
|
|
21
|
-
* @param {string} cAddress
|
|
22
|
-
*/
|
|
23
|
-
to(cAddress) {
|
|
24
|
-
this.transaction._to = [utils_2.default.parseAddress(cAddress)];
|
|
25
|
-
return this;
|
|
26
|
-
}
|
|
27
|
-
get transactionType() {
|
|
28
|
-
return sdk_core_1.TransactionType.Import;
|
|
29
|
-
}
|
|
30
|
-
/** @inheritdoc */
|
|
31
|
-
initBuilder(tx) {
|
|
32
|
-
const baseTx = tx.getUnsignedTx().getTransaction();
|
|
33
|
-
if (baseTx.getNetworkID() !== this.transaction._networkID ||
|
|
34
|
-
!baseTx.getBlockchainID().equals(this.transaction._blockchainID)) {
|
|
35
|
-
throw new Error('Network or blockchain is not equals');
|
|
36
|
-
}
|
|
37
|
-
if (!this.verifyTxType(baseTx)) {
|
|
38
|
-
throw new sdk_core_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
|
|
39
|
-
}
|
|
40
|
-
// The outputs is a signler C-Chain address result.
|
|
41
|
-
// It's expected to have only one outputs to the destination C-Chain address.
|
|
42
|
-
const outputs = baseTx.getOuts();
|
|
43
|
-
if (outputs.length !== 1) {
|
|
44
|
-
throw new sdk_core_1.BuildTransactionError('Transaction can have one output');
|
|
45
|
-
}
|
|
46
|
-
const output = outputs[0];
|
|
47
|
-
if (!output.getAssetID().equals(this.transaction._assetId)) {
|
|
48
|
-
throw new Error('AssetID are not equals');
|
|
49
|
-
}
|
|
50
|
-
this.transaction._to = [output.getAddress()];
|
|
51
|
-
const input = baseTx.getImportInputs();
|
|
52
|
-
this.transaction._utxos = (0, utxoEngine_1.deprecatedRecoverUtxos)(input);
|
|
53
|
-
const totalInputAmount = input.reduce((t, i) => t.add(i.getInput().getAmount()), new avalanche_1.BN(0));
|
|
54
|
-
// it should be (output as AmountOutput).getAmount(), but it's not working.
|
|
55
|
-
const totalOutputAmount = new avalanche_1.BN(output.amount);
|
|
56
|
-
const feeSize = (0, utils_1.costImportTx)(tx.getUnsignedTx());
|
|
57
|
-
const fee = totalInputAmount.sub(totalOutputAmount);
|
|
58
|
-
const feeRate = fee.divn(feeSize);
|
|
59
|
-
this.transaction._fee = {
|
|
60
|
-
fee: fee.toString(),
|
|
61
|
-
feeRate: feeRate.toNumber(),
|
|
62
|
-
size: feeSize,
|
|
63
|
-
};
|
|
64
|
-
this.transaction.setTransaction(tx);
|
|
65
|
-
return this;
|
|
66
|
-
}
|
|
67
|
-
static verifyTxType(baseTx) {
|
|
68
|
-
return baseTx.getTypeID() === evm_1.EVMConstants.IMPORTTX;
|
|
69
|
-
}
|
|
70
|
-
verifyTxType(baseTx) {
|
|
71
|
-
return ImportInCTxBuilder.verifyTxType(baseTx);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Build the import in C-chain transaction
|
|
75
|
-
* @protected
|
|
76
|
-
*/
|
|
77
|
-
buildAvaxTransaction() {
|
|
78
|
-
// if tx has credentials, tx shouldn't change
|
|
79
|
-
if (this.transaction.hasCredentials)
|
|
80
|
-
return;
|
|
81
|
-
if (this.transaction._to.length !== 1) {
|
|
82
|
-
throw new Error('to is required');
|
|
83
|
-
}
|
|
84
|
-
if (!this.transaction._fee.feeRate) {
|
|
85
|
-
throw new Error('fee rate is required');
|
|
86
|
-
}
|
|
87
|
-
const { inputs, amount, credentials } = this.createInputs();
|
|
88
|
-
const feeRate = new avalanche_1.BN(this.transaction._fee.feeRate);
|
|
89
|
-
const feeSize = (0, utils_1.costImportTx)(new evm_1.UnsignedTx(new evm_1.ImportTx(this.transaction._networkID, this.transaction._blockchainID, this._externalChainId, inputs, [
|
|
90
|
-
new evm_1.EVMOutput(this.transaction._to[0], amount, this.transaction._assetId),
|
|
91
|
-
])));
|
|
92
|
-
const fee = feeRate.muln(feeSize);
|
|
93
|
-
this.transaction._fee.fee = fee.toString();
|
|
94
|
-
this.transaction._fee.size = feeSize;
|
|
95
|
-
this.transaction.setTransaction(new evm_1.Tx(new evm_1.UnsignedTx(new evm_1.ImportTx(this.transaction._networkID, this.transaction._blockchainID, this._externalChainId, inputs, [new evm_1.EVMOutput(this.transaction._to[0], amount.sub(fee), this.transaction._assetId)], fee)), credentials));
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Create inputs by mapping {@see utxoEngine.utxoToInput} result.
|
|
99
|
-
* Reorder sender to handle recover signer.
|
|
100
|
-
* TransferableInput is a EVM Tx.
|
|
101
|
-
* @return {
|
|
102
|
-
* inputs: TransferableInput[];
|
|
103
|
-
* credentials: Credential[];
|
|
104
|
-
* amount: BN;
|
|
105
|
-
* } where amount is the sum of inputs amount and credentials has signer address to be replaced with correct signature.
|
|
106
|
-
* @protected
|
|
107
|
-
*
|
|
108
|
-
*/
|
|
109
|
-
createInputs() {
|
|
110
|
-
const sender = this.transaction._fromAddresses.slice();
|
|
111
|
-
if (this.recoverSigner) {
|
|
112
|
-
// switch first and last signer.
|
|
113
|
-
const tmp = sender.pop();
|
|
114
|
-
sender.push(sender[0]);
|
|
115
|
-
if (tmp) {
|
|
116
|
-
sender[0] = tmp;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
const { inputs, amount } = (0, utxoEngine_1.utxoToInput)(this.transaction._utxos, sender);
|
|
120
|
-
const result = { inputs: [], credentials: [] };
|
|
121
|
-
inputs.forEach((input) => {
|
|
122
|
-
const secpTransferInput = new evm_1.SECPTransferInput(input.amount);
|
|
123
|
-
input.signaturesIdx.forEach((signatureIdx, arrayIndex) => secpTransferInput.addSignatureIdx(signatureIdx, sender[arrayIndex]));
|
|
124
|
-
result.inputs.push(new evm_1.TransferableInput(input.txidBuf, input.outputIdx, this.transaction._assetId, secpTransferInput));
|
|
125
|
-
result.credentials.push((0, evm_1.SelectCredentialClass)(secpTransferInput.getCredentialID(), input.signatures));
|
|
126
|
-
});
|
|
127
|
-
return { ...result, amount };
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
exports.ImportInCTxBuilder = ImportInCTxBuilder;
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbXBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOENBQXVGO0FBQ3ZGLGlEQVVpQztBQUNqQyxnREFBb0Q7QUFDcEQseUNBQStCO0FBRS9CLDZDQUFtRTtBQUVuRSwrRUFBNEU7QUFDNUUsb0RBQTRCO0FBRTVCLE1BQWEsa0JBQW1CLFNBQVEseURBQTJCO0lBQ2pFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsRUFBRSxDQUFDLFFBQWdCO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsZUFBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVyxDQUFDLEVBQWdCO1FBQzFCLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckUsSUFDRSxNQUFNLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVO1lBQ3JELENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUNoRSxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSx1QkFBWSxD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Q0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FDcEcsQ0FBQztZQUVGLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUEsMkJBQXFCLEVBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDeEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBbEtELGdEQWtLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIE5vdFN1cHBvcnRlZCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIEVWTUNvbnN0YW50cyxcbiAgVHggYXMgRVZNVHgsXG4gIEltcG9ydFR4LFxuICBVbnNpZ25lZFR4LFxuICBTRUNQVHJhbnNmZXJJbnB1dCxcbiAgU2VsZWN0Q3JlZGVudGlhbENsYXNzLFxuICBUcmFuc2ZlcmFibGVJbnB1dCxcbiAgRVZNT3V0cHV0LFxuICBBbW91bnRJbnB1dCxcbn0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvYXBpcy9ldm0nO1xuaW1wb3J0IHsgY29zdEltcG9ydFR4IH0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvdXRpbHMnO1xuaW1wb3J0IHsgQk4gfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgQ3JlZGVudGlhbCB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2NvbW1vbic7XG5pbXBvcnQgeyBkZXByZWNhdGVkUmVjb3ZlclV0eG9zLCB1dHhvVG9JbnB1dCB9IGZyb20gJy4vdXR4b0VuZ2luZSc7XG5pbXBvcnQgeyBEZXByZWNhdGVkQmFzZVR4LCBEZXByZWNhdGVkVHggfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEF0b21pY0luQ1RyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vYXRvbWljSW5DVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEltcG9ydEluQ1R4QnVpbGRlciBleHRlbmRzIEF0b21pY0luQ1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDLWNoYWluIGFkZHJlc3Mgd2hvIGlzIHRhcmdldCBvZiB0aGUgaW1wb3J0LlxuICAgKiBBZGRyZXNzIGZvcm1hdCBpcyBldGggbGlrZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY0FkZHJlc3NcbiAgICovXG4gIHRvKGNBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl90byA9IFt1dGlscy5wYXJzZUFkZHJlc3MoY0FkZHJlc3MpXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5JbXBvcnQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IERlcHJlY2F0ZWRUeCk6IHRoaXMge1xuICAgIGNvbnN0IGJhc2VUeDogRGVwcmVjYXRlZEJhc2VUeCA9IHR4LmdldFVuc2lnbmVkVHgoKS5nZXRUcmFuc2FjdGlvbigpO1xuICAgIGlmIChcbiAgICAgIGJhc2VUeC5nZXROZXR3b3JrSUQoKSAhPT0gdGhpcy50cmFuc2FjdGlvbi5fbmV0d29ya0lEIHx8XG4gICAgICAhYmFzZVR4LmdldEJsb2NrY2hhaW5JRCgpLmVxdWFscyh0aGlzLnRyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgb3IgYmxvY2tjaGFpbiBpcyBub3QgZXF1YWxzJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZlcmlmeVR4VHlwZShiYXNlVHgpKSB7XG4gICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiBjYW5ub3QgYmUgcGFyc2VkIG9yIGhhcyBhbiB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuXG4gICAgLy8gVGhlIG91dHB1dHMgaXMgYSBzaWdubGVyIEMtQ2hhaW4gYWRkcmVzcyByZXN1bHQuXG4gICAgLy8gSXQncyBleHBlY3RlZCB0byBoYXZlIG9ubHkgb25lIG91dHB1dHMgdG8gdGhlIGRlc3RpbmF0aW9uIEMtQ2hhaW4gYWRkcmVzcy5cbiAgICBjb25zdCBvdXRwdXRzID0gYmFzZVR4LmdldE91dHMoKTtcbiAgICBpZiAob3V0cHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbiBoYXZlIG9uZSBvdXRwdXQnKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTtcblxuICAgIGlmICghb3V0cHV0LmdldEFzc2V0SUQoKS5lcXVhbHModGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXNzZXRJRCBhcmUgbm90IGVxdWFscycpO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zYWN0aW9uLl90byA9IFtvdXRwdXQuZ2V0QWRkcmVzcygpXTtcblxuICAgIGNvbnN0IGlucHV0ID0gYmFzZVR4LmdldEltcG9ydElucHV0cygpO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5fdXR4b3MgPSBkZXByZWNhdGVkUmVjb3ZlclV0eG9zKGlucHV0KTtcblxuICAgIGNvbnN0IHRvdGFsSW5wdXRBbW91bnQgPSBpbnB1dC5yZWR1Y2UoKHQsIGkpID0+IHQuYWRkKChpLmdldElucHV0KCkgYXMgQW1vdW50SW5wdXQpLmdldEFtb3VudCgpKSwgbmV3IEJOKDApKTtcbiAgICAvLyBpdCBzaG91bGQgYmUgKG91dHB1dCBhcyBBbW91bnRPdXRwdXQpLmdldEFtb3VudCgpLCBidXQgaXQncyBub3Qgd29ya2luZy5cbiAgICBjb25zdCB0b3RhbE91dHB1dEFtb3VudCA9IG5ldyBCTigob3V0cHV0IGFzIGFueSkuYW1vdW50KTtcbiAgICBjb25zdCBmZWVTaXplID0gY29zdEltcG9ydFR4KHR4LmdldFVuc2lnbmVkVHgoKSBhcyBVbnNpZ25lZFR4KTtcbiAgICBjb25zdCBmZWUgPSB0b3RhbElucHV0QW1vdW50LnN1Yih0b3RhbE91dHB1dEFtb3VudCk7XG4gICAgY29uc3QgZmVlUmF0ZSA9IGZlZS5kaXZuKGZlZVNpemUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2ZlZSA9IHtcbiAgICAgIGZlZTogZmVlLnRvU3RyaW5nKCksXG4gICAgICBmZWVSYXRlOiBmZWVSYXRlLnRvTnVtYmVyKCksXG4gICAgICBzaXplOiBmZWVTaXplLFxuICAgIH07XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvbih0eCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGF0aWMgdmVyaWZ5VHhUeXBlKGJhc2VUeDogRGVwcmVjYXRlZEJhc2VUeCk6IGJhc2VUeCBpcyBJbXBvcnRUeCB7XG4gICAgcmV0dXJuIGJhc2VUeC5nZXRUeXBlSUQoKSA9PT0gRVZNQ29uc3RhbnRzLklNUE9SVFRYO1xuICB9XG5cbiAgdmVyaWZ5VHhUeXBlKGJhc2VUeDogRGVwcmVjYXRlZEJhc2VUeCk6IGJhc2VUeCBpcyBJbXBvcnRUeCB7XG4gICAgcmV0dXJuIEltcG9ydEluQ1R4QnVpbGRlci52ZXJpZnlUeFR5cGUoYmFzZVR4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgaW1wb3J0IGluIEMtY2hhaW4gdHJhbnNhY3Rpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkQXZheFRyYW5zYWN0aW9uKCk6IHZvaWQge1xuICAgIC8vIGlmIHR4IGhhcyBjcmVkZW50aWFscywgdHggc2hvdWxkbid0IGNoYW5nZVxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLmhhc0NyZWRlbnRpYWxzKSByZXR1cm47XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uX3RvLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0byBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb24uX2ZlZS5mZWVSYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZlZSByYXRlIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHsgaW5wdXRzLCBhbW91bnQsIGNyZWRlbnRpYWxzIH0gPSB0aGlzLmNyZWF0ZUlucHV0cygpO1xuXG4gICAgY29uc3QgZmVlUmF0ZSA9IG5ldyBCTih0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlUmF0ZSk7XG4gICAgY29uc3QgZmVlU2l6ZSA9IGNvc3RJbXBvcnRUeChcbiAgICAgIG5ldyBVbnNpZ25lZFR4KFxuICAgICAgICBuZXcgSW1wb3J0VHgodGhpcy50cmFuc2FjdGlvbi5fbmV0d29ya0lELCB0aGlzLnRyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQsIHRoaXMuX2V4dGVybmFsQ2hhaW5JZCwgaW5wdXRzLCBbXG4gICAgICAgICAgbmV3IEVWTU91dHB1dCh0aGlzLnRyYW5zYWN0aW9uLl90b1swXSwgYW1vdW50LCB0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkKSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICApO1xuICAgIGNvbnN0IGZlZSA9IGZlZVJhdGUubXVsbihmZWVTaXplKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlID0gZmVlLnRvU3RyaW5nKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZmVlLnNpemUgPSBmZWVTaXplO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24oXG4gICAgICBuZXcgRVZNVHgoXG4gICAgICAgIG5ldyBVbnNpZ25lZFR4KFxuICAgICAgICAgIG5ldyBJbXBvcnRUeChcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmtJRCxcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCxcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsQ2hhaW5JZCxcbiAgICAgICAgICAgIGlucHV0cyxcbiAgICAgICAgICAgIFtuZXcgRVZNT3V0cHV0KHRoaXMudHJhbnNhY3Rpb24uX3RvWzBdLCBhbW91bnQuc3ViKGZlZSksIHRoaXMudHJhbnNhY3Rpb24uX2Fzc2V0SWQpXSxcbiAgICAgICAgICAgIGZlZVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgY3JlZGVudGlhbHNcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBpbnB1dHMgYnkgbWFwcGluZyB7QHNlZSB1dHhvRW5naW5lLnV0eG9Ub0lucHV0fSByZXN1bHQuXG4gICAqIFJlb3JkZXIgc2VuZGVyIHRvIGhhbmRsZSByZWNvdmVyIHNpZ25lci5cbiAgICogVHJhbnNmZXJhYmxlSW5wdXQgaXMgYSBFVk0gVHguXG4gICAqIEByZXR1cm4ge1xuICAgKiAgICAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgKiAgICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgICogICAgIGFtb3VudDogQk47XG4gICAqICAgfSB3aGVyZSBhbW91bnQgaXMgdGhlIHN1bSBvZiBpbnB1dHMgYW1vdW50IGFuZCBjcmVkZW50aWFscyBoYXMgc2lnbmVyIGFkZHJlc3MgdG8gYmUgcmVwbGFjZWQgd2l0aCBjb3JyZWN0IHNpZ25hdHVyZS5cbiAgICogQHByb3RlY3RlZFxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUlucHV0cygpOiB7XG4gICAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsW107XG4gICAgYW1vdW50OiBCTjtcbiAgfSB7XG4gICAgY29uc3Qgc2VuZGVyID0gdGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3Nlcy5zbGljZSgpO1xuICAgIGlmICh0aGlzLnJlY292ZXJTaWduZXIpIHtcbiAgICAgIC8vIHN3aXRjaCBmaXJzdCBhbmQgbGFzdCBzaWduZXIuXG4gICAgICBjb25zdCB0bXAgPSBzZW5kZXIucG9wKCk7XG4gICAgICBzZW5kZXIucHVzaChzZW5kZXJbMF0pO1xuICAgICAgaWYgKHRtcCkge1xuICAgICAgICBzZW5kZXJbMF0gPSB0bXA7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgaW5wdXRzLCBhbW91bnQgfSA9IHV0eG9Ub0lucHV0KHRoaXMudHJhbnNhY3Rpb24uX3V0eG9zLCBzZW5kZXIpO1xuICAgIGNvbnN0IHJlc3VsdDoge1xuICAgICAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgICB9ID0geyBpbnB1dHM6IFtdLCBjcmVkZW50aWFsczogW10gfTtcblxuICAgIGlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgY29uc3Qgc2VjcFRyYW5zZmVySW5wdXQgPSBuZXcgU0VDUFRyYW5zZmVySW5wdXQoaW5wdXQuYW1vdW50KTtcbiAgICAgIGlucHV0LnNpZ25hdHVyZXNJZHguZm9yRWFjaCgoc2lnbmF0dXJlSWR4LCBhcnJheUluZGV4KSA9PlxuICAgICAgICBzZWNwVHJhbnNmZXJJbnB1dC5hZGRTaWduYXR1cmVJZHgoc2lnbmF0dXJlSWR4LCBzZW5kZXJbYXJyYXlJbmRleF0pXG4gICAgICApO1xuICAgICAgcmVzdWx0LmlucHV0cy5wdXNoKFxuICAgICAgICBuZXcgVHJhbnNmZXJhYmxlSW5wdXQoaW5wdXQudHhpZEJ1ZiwgaW5wdXQub3V0cHV0SWR4LCB0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkLCBzZWNwVHJhbnNmZXJJbnB1dClcbiAgICAgICk7XG5cbiAgICAgIHJlc3VsdC5jcmVkZW50aWFscy5wdXNoKFNlbGVjdENyZWRlbnRpYWxDbGFzcyhzZWNwVHJhbnNmZXJJbnB1dC5nZXRDcmVkZW50aWFsSUQoKSwgaW5wdXQuc2lnbmF0dXJlcykpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgLi4ucmVzdWx0LCBhbW91bnQgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
-
import { TransactionType } from '@bitgo/sdk-core';
|
|
3
|
-
import { AtomicTransactionBuilder } from './atomicTransactionBuilder';
|
|
4
|
-
import { ImportTx } from 'avalanche/dist/apis/platformvm';
|
|
5
|
-
import { DeprecatedTx, DeprecatedBaseTx } from './iface';
|
|
6
|
-
export declare class ImportTxBuilder extends AtomicTransactionBuilder {
|
|
7
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
8
|
-
protected get transactionType(): TransactionType;
|
|
9
|
-
initBuilder(tx: DeprecatedTx): this;
|
|
10
|
-
static verifyTxType(baseTx: DeprecatedBaseTx): baseTx is ImportTx;
|
|
11
|
-
verifyTxType(baseTx: DeprecatedBaseTx): baseTx is ImportTx;
|
|
12
|
-
/**
|
|
13
|
-
* Build the import transaction
|
|
14
|
-
* @protected
|
|
15
|
-
*/
|
|
16
|
-
protected buildAvaxTransaction(): void;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=importTxBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"importTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/importTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAuC,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAgD,MAAM,gCAAgC,CAAC;AAIxG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzD,qBAAa,eAAgB,SAAQ,wBAAwB;gBAC/C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IA4BnC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,QAAQ;IAIjE,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,QAAQ;IAI1D;;;OAGG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;CAqBvC"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ImportTxBuilder = void 0;
|
|
7
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
|
-
const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
|
|
9
|
-
const platformvm_1 = require("avalanche/dist/apis/platformvm");
|
|
10
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
-
const avalanche_1 = require("avalanche");
|
|
12
|
-
const utxoEngine_1 = require("./utxoEngine");
|
|
13
|
-
class ImportTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
|
|
14
|
-
constructor(_coinConfig) {
|
|
15
|
-
super(_coinConfig);
|
|
16
|
-
this._externalChainId = utils_1.default.cb58Decode(this.transaction._network.cChainBlockchainID);
|
|
17
|
-
}
|
|
18
|
-
get transactionType() {
|
|
19
|
-
return sdk_core_1.TransactionType.Import;
|
|
20
|
-
}
|
|
21
|
-
initBuilder(tx) {
|
|
22
|
-
super.initBuilder(tx);
|
|
23
|
-
const baseTx = tx.getUnsignedTx().getTransaction();
|
|
24
|
-
if (!this.verifyTxType(baseTx)) {
|
|
25
|
-
throw new sdk_core_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
|
|
26
|
-
}
|
|
27
|
-
// The regular change output is the tx output in Import tx.
|
|
28
|
-
// {@link createInputOutput} result a single item array.
|
|
29
|
-
// It's expected to have only one outputs with the addresses of the sender.
|
|
30
|
-
const outputs = baseTx.getOuts();
|
|
31
|
-
if (outputs.length !== 1) {
|
|
32
|
-
throw new sdk_core_1.BuildTransactionError('Transaction can have one external output');
|
|
33
|
-
}
|
|
34
|
-
const output = outputs[0];
|
|
35
|
-
if (!output.getAssetID().equals(this.transaction._assetId)) {
|
|
36
|
-
throw new Error('The Asset ID of the output does not match the transaction');
|
|
37
|
-
}
|
|
38
|
-
const secpOut = output.getOutput();
|
|
39
|
-
this.transaction._locktime = secpOut.getLocktime();
|
|
40
|
-
this.transaction._threshold = secpOut.getThreshold();
|
|
41
|
-
// output addresses are the sender addresses
|
|
42
|
-
this.transaction._fromAddresses = secpOut.getAddresses();
|
|
43
|
-
this._externalChainId = baseTx.getSourceChain();
|
|
44
|
-
this.transaction._utxos = (0, utxoEngine_1.deprecatedRecoverUtxos)(baseTx.getImportInputs());
|
|
45
|
-
return this;
|
|
46
|
-
}
|
|
47
|
-
static verifyTxType(baseTx) {
|
|
48
|
-
return baseTx.getTypeID() === platformvm_1.PlatformVMConstants.IMPORTTX;
|
|
49
|
-
}
|
|
50
|
-
verifyTxType(baseTx) {
|
|
51
|
-
return ImportTxBuilder.verifyTxType(baseTx);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Build the import transaction
|
|
55
|
-
* @protected
|
|
56
|
-
*/
|
|
57
|
-
buildAvaxTransaction() {
|
|
58
|
-
// if tx has credentials, tx shouldn't change
|
|
59
|
-
if (this.transaction.hasCredentials)
|
|
60
|
-
return;
|
|
61
|
-
const { inputs, outputs, credentials } = this.createInputOutput(new avalanche_1.BN(this.transaction.fee.fee));
|
|
62
|
-
this.transaction.setTransaction(new platformvm_1.Tx(new platformvm_1.UnsignedTx(new platformvm_1.ImportTx(this.transaction._networkID, this.transaction._blockchainID, outputs, [], // P-Chain input
|
|
63
|
-
undefined, this._externalChainId, inputs)), credentials));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
exports.ImportTxBuilder = ImportTxBuilder;
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0VHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbXBvcnRUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOENBQXVGO0FBQ3ZGLHlFQUFzRTtBQUN0RSwrREFBd0c7QUFDeEcsb0RBQTRCO0FBQzVCLHlDQUErQjtBQUMvQiw2Q0FBc0Q7QUFHdEQsTUFBYSxlQUFnQixTQUFRLG1EQUF3QjtJQUMzRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWdCO1FBQzFCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELDJEQUEyRDtRQUMzRCx3REFBd0Q7UUFDeEQsMkVBQTJFO1FBQzNFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyRCw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBQSxtQ0FBc0IsRUFBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQXdCO1FBQzFDLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLGdDQUFtQixDQUFDLFFBQVEsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQXdCO1FBQ25DLE9BQU8sZUFBZSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sb0JBQW9CO1FBQzVCLDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYztZQUFFLE9BQU87UUFDNUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksY0FBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQzdCLElBQUksZUFBSyxDQUNQLElBQUksdUJBQVUsQ0FDWixJQUFJLHFCQUFRLENBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUM5QixPQUFPLEVBQ1AsRUFBRSxFQUFFLGdCQUFnQjtRQUNwQixTQUFTLEVBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixNQUFNLENBQ1AsQ0FDRixFQUNELFdBQVcsQ0FDWixDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2RUQsMENBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgTm90U3VwcG9ydGVkLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgSW1wb3J0VHgsIFBsYXRmb3JtVk1Db25zdGFudHMsIFR4IGFzIFBWTVR4LCBVbnNpZ25lZFR4IH0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvYXBpcy9wbGF0Zm9ybXZtJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJOIH0gZnJvbSAnYXZhbGFuY2hlJztcbmltcG9ydCB7IGRlcHJlY2F0ZWRSZWNvdmVyVXR4b3MgfSBmcm9tICcuL3V0eG9FbmdpbmUnO1xuaW1wb3J0IHsgRGVwcmVjYXRlZFR4LCBEZXByZWNhdGVkQmFzZVR4IH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRUeEJ1aWxkZXIgZXh0ZW5kcyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkID0gdXRpbHMuY2I1OERlY29kZSh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLmNDaGFpbkJsb2NrY2hhaW5JRCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuSW1wb3J0O1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IERlcHJlY2F0ZWRUeCk6IHRoaXMge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBiYXNlVHg6IERlcHJlY2F0ZWRCYXNlVHggPSB0eC5nZXRVbnNpZ25lZFR4KCkuZ2V0VHJhbnNhY3Rpb24oKTtcbiAgICBpZiAoIXRoaXMudmVyaWZ5VHhUeXBlKGJhc2VUeCkpIHtcbiAgICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoJ1RyYW5zYWN0aW9uIGNhbm5vdCBiZSBwYXJzZWQgb3IgaGFzIGFuIHVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcmVndWxhciBjaGFuZ2Ugb3V0cHV0IGlzIHRoZSB0eCBvdXRwdXQgaW4gSW1wb3J0IHR4LlxuICAgIC8vIHtAbGluayBjcmVhdGVJbnB1dE91dHB1dH0gcmVzdWx0IGEgc2luZ2xlIGl0ZW0gYXJyYXkuXG4gICAgLy8gSXQncyBleHBlY3RlZCB0byBoYXZlIG9ubHkgb25lIG91dHB1dHMgd2l0aCB0aGUgYWRkcmVzc2VzIG9mIHRoZSBzZW5kZXIuXG4gICAgY29uc3Qgb3V0cHV0cyA9IGJhc2VUeC5nZXRPdXRzKCk7XG4gICAgaWYgKG91dHB1dHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiBjYW4gaGF2ZSBvbmUgZXh0ZXJuYWwgb3V0cHV0Jyk7XG4gICAgfVxuICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07XG4gICAgaWYgKCFvdXRwdXQuZ2V0QXNzZXRJRCgpLmVxdWFscyh0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgQXNzZXQgSUQgb2YgdGhlIG91dHB1dCBkb2VzIG5vdCBtYXRjaCB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3Qgc2VjcE91dCA9IG91dHB1dC5nZXRPdXRwdXQoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9sb2NrdGltZSA9IHNlY3BPdXQuZ2V0TG9ja3RpbWUoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl90aHJlc2hvbGQgPSBzZWNwT3V0LmdldFRocmVzaG9sZCgpO1xuICAgIC8vIG91dHB1dCBhZGRyZXNzZXMgYXJlIHRoZSBzZW5kZXIgYWRkcmVzc2VzXG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3NlcyA9IHNlY3BPdXQuZ2V0QWRkcmVzc2VzKCk7XG4gICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkID0gYmFzZVR4LmdldFNvdXJjZUNoYWluKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fdXR4b3MgPSBkZXByZWNhdGVkUmVjb3ZlclV0eG9zKGJhc2VUeC5nZXRJbXBvcnRJbnB1dHMoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGF0aWMgdmVyaWZ5VHhUeXBlKGJhc2VUeDogRGVwcmVjYXRlZEJhc2VUeCk6IGJhc2VUeCBpcyBJbXBvcnRUeCB7XG4gICAgcmV0dXJuIGJhc2VUeC5nZXRUeXBlSUQoKSA9PT0gUGxhdGZvcm1WTUNvbnN0YW50cy5JTVBPUlRUWDtcbiAgfVxuXG4gIHZlcmlmeVR4VHlwZShiYXNlVHg6IERlcHJlY2F0ZWRCYXNlVHgpOiBiYXNlVHggaXMgSW1wb3J0VHgge1xuICAgIHJldHVybiBJbXBvcnRUeEJ1aWxkZXIudmVyaWZ5VHhUeXBlKGJhc2VUeCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIGltcG9ydCB0cmFuc2FjdGlvblxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRBdmF4VHJhbnNhY3Rpb24oKTogdm9pZCB7XG4gICAgLy8gaWYgdHggaGFzIGNyZWRlbnRpYWxzLCB0eCBzaG91bGRuJ3QgY2hhbmdlXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaGFzQ3JlZGVudGlhbHMpIHJldHVybjtcbiAgICBjb25zdCB7IGlucHV0cywgb3V0cHV0cywgY3JlZGVudGlhbHMgfSA9IHRoaXMuY3JlYXRlSW5wdXRPdXRwdXQobmV3IEJOKHRoaXMudHJhbnNhY3Rpb24uZmVlLmZlZSkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24oXG4gICAgICBuZXcgUFZNVHgoXG4gICAgICAgIG5ldyBVbnNpZ25lZFR4KFxuICAgICAgICAgIG5ldyBJbXBvcnRUeChcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmtJRCxcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCxcbiAgICAgICAgICAgIG91dHB1dHMsXG4gICAgICAgICAgICBbXSwgLy8gUC1DaGFpbiBpbnB1dFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkLFxuICAgICAgICAgICAgaW5wdXRzXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBjcmVkZW50aWFsc1xuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/lib/index.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import Utils from './utils';
|
|
2
|
-
export * from './iface';
|
|
3
|
-
export { KeyPair } from './keyPair';
|
|
4
|
-
export { Transaction } from './transaction';
|
|
5
|
-
export { TransactionBuilder } from './transactionBuilder';
|
|
6
|
-
export { DeprecatedTransaction } from './deprecatedTransaction';
|
|
7
|
-
export { DeprecatedTransactionBuilder } from './deprecatedTransactionBuilder';
|
|
8
|
-
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
9
|
-
export * from './iface';
|
|
10
|
-
export { Utils };
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
package/dist/src/lib/index.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.Utils = exports.TransactionBuilderFactory = exports.DeprecatedTransactionBuilder = exports.DeprecatedTransaction = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
|
|
21
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
22
|
-
exports.Utils = utils_1.default;
|
|
23
|
-
__exportStar(require("./iface"), exports);
|
|
24
|
-
var keyPair_1 = require("./keyPair");
|
|
25
|
-
Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
|
|
26
|
-
var transaction_1 = require("./transaction");
|
|
27
|
-
Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
|
|
28
|
-
var transactionBuilder_1 = require("./transactionBuilder");
|
|
29
|
-
Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
|
|
30
|
-
var deprecatedTransaction_1 = require("./deprecatedTransaction");
|
|
31
|
-
Object.defineProperty(exports, "DeprecatedTransaction", { enumerable: true, get: function () { return deprecatedTransaction_1.DeprecatedTransaction; } });
|
|
32
|
-
var deprecatedTransactionBuilder_1 = require("./deprecatedTransactionBuilder");
|
|
33
|
-
Object.defineProperty(exports, "DeprecatedTransactionBuilder", { enumerable: true, get: function () { return deprecatedTransactionBuilder_1.DeprecatedTransactionBuilder; } });
|
|
34
|
-
var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
|
|
35
|
-
Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
|
|
36
|
-
__exportStar(require("./iface"), exports);
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBU25CLGdCQVRGLGVBQUssQ0FTRTtBQVJkLDBDQUF3QjtBQUN4QixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLGlFQUFnRTtBQUF2RCw4SEFBQSxxQkFBcUIsT0FBQTtBQUM5QiwrRUFBOEU7QUFBckUsNElBQUEsNEJBQTRCLE9BQUE7QUFDckMseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBQ2xDLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaWZhY2UnO1xuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgRGVwcmVjYXRlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi9kZXByZWNhdGVkVHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgRGVwcmVjYXRlZFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vZGVwcmVjYXRlZFRyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vaWZhY2UnO1xuZXhwb3J0IHsgVXRpbHMgfTtcbiJdfQ==
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo/sdk-core';
|
|
2
|
-
export declare enum addressFormat {
|
|
3
|
-
testnet = "fuji",
|
|
4
|
-
mainnet = "avax"
|
|
5
|
-
}
|
|
6
|
-
export declare class KeyPair extends Secp256k1ExtendedKeyPair {
|
|
7
|
-
/**
|
|
8
|
-
* Public constructor. By default, creates a key pair with a random master seed.
|
|
9
|
-
*
|
|
10
|
-
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
11
|
-
*/
|
|
12
|
-
constructor(source?: KeyPairOptions);
|
|
13
|
-
/**
|
|
14
|
-
* Build a keypair from a protocol private key or extended private key.
|
|
15
|
-
*
|
|
16
|
-
* @param {string} prv A raw private key
|
|
17
|
-
*/
|
|
18
|
-
recordKeysFromPrivateKey(prv: string): void;
|
|
19
|
-
/**
|
|
20
|
-
* Build an ECPair from a protocol public key or extended public key.
|
|
21
|
-
*
|
|
22
|
-
* @param {string} pub A raw public key
|
|
23
|
-
*/
|
|
24
|
-
recordKeysFromPublicKey(pub: string): void;
|
|
25
|
-
/**
|
|
26
|
-
* Default keys format is a pair of Uint8Array keys
|
|
27
|
-
*
|
|
28
|
-
* @returns { DefaultKeys } The keys in the defined format
|
|
29
|
-
*/
|
|
30
|
-
getKeys(): DefaultKeys;
|
|
31
|
-
/**
|
|
32
|
-
* Get an Avalanche P-Chain public mainnet address
|
|
33
|
-
*
|
|
34
|
-
* @param {string} format - avalanche hrp - select Mainnet(avax) or Testnet(fuji) for the address
|
|
35
|
-
* @returns {string} The mainnet address derived from the public key
|
|
36
|
-
*/
|
|
37
|
-
getAddress(format?: string): string;
|
|
38
|
-
/**
|
|
39
|
-
* Get a public address of public key.
|
|
40
|
-
*
|
|
41
|
-
* @param {string} hrp - select Mainnet(avax) or Testnet(fuji) for the address
|
|
42
|
-
* @returns {string} The address derived from the public key and hrp
|
|
43
|
-
*/
|
|
44
|
-
getAvaxPAddress(hrp: string): string;
|
|
45
|
-
/**
|
|
46
|
-
* Get an Avalanche P-Chain public mainnet address
|
|
47
|
-
*
|
|
48
|
-
* @returns {Buffer} The address buffer derived from the public key
|
|
49
|
-
*/
|
|
50
|
-
getAddressBuffer(): Buffer;
|
|
51
|
-
/**
|
|
52
|
-
* Use the safe Buffer instead of the regular buffer to derive the address buffer. Used in the OVC.
|
|
53
|
-
*
|
|
54
|
-
* @returns {Buffer}
|
|
55
|
-
*/
|
|
56
|
-
getAddressSafeBuffer(): Buffer;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=keyPair.d.ts.map
|