@bitgo-beta/sdk-coin-baby 0.0.0-semantic-release-managed
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +5 -0
- package/.mocharc.yml +8 -0
- package/CHANGELOG.md +209 -0
- package/LICENSE +191 -0
- package/README.md +30 -0
- package/dist/src/baby.d.ts +34 -0
- package/dist/src/baby.d.ts.map +1 -0
- package/dist/src/baby.js +69 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +21 -0
- package/dist/src/lib/BabylonTransaction.d.ts +9 -0
- package/dist/src/lib/BabylonTransaction.d.ts.map +1 -0
- package/dist/src/lib/BabylonTransaction.js +87 -0
- package/dist/src/lib/CustomTransactionBuilder.d.ts +14 -0
- package/dist/src/lib/CustomTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/CustomTransactionBuilder.js +37 -0
- package/dist/src/lib/EpochedStakingActivateBuilder.d.ts +7 -0
- package/dist/src/lib/EpochedStakingActivateBuilder.d.ts.map +1 -0
- package/dist/src/lib/EpochedStakingActivateBuilder.js +48 -0
- package/dist/src/lib/EpochedStakingDeactivateBuilder.d.ts +7 -0
- package/dist/src/lib/EpochedStakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/src/lib/EpochedStakingDeactivateBuilder.js +48 -0
- package/dist/src/lib/EpochedStakingRedelegateBuilder.d.ts +7 -0
- package/dist/src/lib/EpochedStakingRedelegateBuilder.d.ts.map +1 -0
- package/dist/src/lib/EpochedStakingRedelegateBuilder.js +48 -0
- package/dist/src/lib/constants.d.ts +14 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +19 -0
- package/dist/src/lib/iface.d.ts +10 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +3 -0
- package/dist/src/lib/index.d.ts +10 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +55 -0
- package/dist/src/lib/keyPair.d.ts +11 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +24 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +31 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +91 -0
- package/dist/src/lib/utils.d.ts +38 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +224 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +11 -0
- package/dist/src/tbaby.d.ts +14 -0
- package/dist/src/tbaby.d.ts.map +1 -0
- package/dist/src/tbaby.js +18 -0
- package/package.json +59 -0
|
@@ -0,0 +1,91 @@
|
|
|
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.TransactionBuilderFactory = void 0;
|
|
7
|
+
const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
|
|
8
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
9
|
+
const EpochedStakingActivateBuilder_1 = require("./EpochedStakingActivateBuilder");
|
|
10
|
+
const EpochedStakingDeactivateBuilder_1 = require("./EpochedStakingDeactivateBuilder");
|
|
11
|
+
const EpochedStakingRedelegateBuilder_1 = require("./EpochedStakingRedelegateBuilder");
|
|
12
|
+
const CustomTransactionBuilder_1 = require("./CustomTransactionBuilder");
|
|
13
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
14
|
+
const BabylonTransaction_1 = require("./BabylonTransaction");
|
|
15
|
+
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
16
|
+
constructor(_coinConfig) {
|
|
17
|
+
super(_coinConfig);
|
|
18
|
+
}
|
|
19
|
+
/** @inheritdoc */
|
|
20
|
+
from(raw) {
|
|
21
|
+
const tx = new BabylonTransaction_1.BabylonTransaction(this._coinConfig, utils_1.default);
|
|
22
|
+
tx.enrichTransactionDetailsFromRawTransaction(raw);
|
|
23
|
+
try {
|
|
24
|
+
switch (tx.type) {
|
|
25
|
+
case sdk_core_1.TransactionType.Send:
|
|
26
|
+
return this.getTransferBuilder(tx);
|
|
27
|
+
case sdk_core_1.TransactionType.StakingActivate:
|
|
28
|
+
return this.getStakingActivateBuilder(tx);
|
|
29
|
+
case sdk_core_1.TransactionType.StakingDeactivate:
|
|
30
|
+
return this.getStakingDeactivateBuilder(tx);
|
|
31
|
+
case sdk_core_1.TransactionType.StakingWithdraw:
|
|
32
|
+
return this.getStakingWithdrawRewardsBuilder(tx);
|
|
33
|
+
case sdk_core_1.TransactionType.ContractCall:
|
|
34
|
+
return this.getContractCallBuilder(tx);
|
|
35
|
+
case sdk_core_1.TransactionType.StakingRedelegate:
|
|
36
|
+
return this.getStakingRedelegateBuilder(tx);
|
|
37
|
+
case sdk_core_1.TransactionType.CustomTx:
|
|
38
|
+
return this.getCustomTransactionBuilder(tx);
|
|
39
|
+
default:
|
|
40
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid transaction: ' + e.message);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** @inheritdoc */
|
|
48
|
+
getTransferBuilder(tx) {
|
|
49
|
+
return this.initializeBuilder(tx, new abstract_cosmos_1.CosmosTransferBuilder(this._coinConfig, utils_1.default));
|
|
50
|
+
}
|
|
51
|
+
/** @inheritdoc */
|
|
52
|
+
getStakingActivateBuilder(tx) {
|
|
53
|
+
return this.initializeBuilder(tx, new EpochedStakingActivateBuilder_1.EpochedStakingActivateBuilder(this._coinConfig, utils_1.default));
|
|
54
|
+
}
|
|
55
|
+
/** @inheritdoc */
|
|
56
|
+
getStakingDeactivateBuilder(tx) {
|
|
57
|
+
return this.initializeBuilder(tx, new EpochedStakingDeactivateBuilder_1.EpochedStakingDeactivateBuilder(this._coinConfig, utils_1.default));
|
|
58
|
+
}
|
|
59
|
+
/** @inheritdoc */
|
|
60
|
+
getStakingWithdrawRewardsBuilder(tx) {
|
|
61
|
+
return this.initializeBuilder(tx, new abstract_cosmos_1.StakingWithdrawRewardsBuilder(this._coinConfig, utils_1.default));
|
|
62
|
+
}
|
|
63
|
+
getContractCallBuilder(tx) {
|
|
64
|
+
return this.initializeBuilder(tx, new abstract_cosmos_1.ContractCallBuilder(this._coinConfig, utils_1.default));
|
|
65
|
+
}
|
|
66
|
+
getStakingRedelegateBuilder(tx) {
|
|
67
|
+
return this.initializeBuilder(tx, new EpochedStakingRedelegateBuilder_1.EpochedStakingRedelegateBuilder(this._coinConfig, utils_1.default));
|
|
68
|
+
}
|
|
69
|
+
getCustomTransactionBuilder(tx) {
|
|
70
|
+
return this.initializeBuilder(tx, new CustomTransactionBuilder_1.CustomTransactionBuilder(this._coinConfig, utils_1.default));
|
|
71
|
+
}
|
|
72
|
+
/** @inheritdoc */
|
|
73
|
+
getWalletInitializationBuilder() {
|
|
74
|
+
throw new Error('Method not implemented.');
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Initialize the builder with the given transaction
|
|
78
|
+
*
|
|
79
|
+
* @param {Transaction | undefined} tx - the transaction used to initialize the builder
|
|
80
|
+
* @param {TransactionBuilder} builder - the builder to be initialized
|
|
81
|
+
* @returns {TransactionBuilder} the builder initialized
|
|
82
|
+
*/
|
|
83
|
+
initializeBuilder(tx, builder) {
|
|
84
|
+
if (tx) {
|
|
85
|
+
builder.initBuilder(tx);
|
|
86
|
+
}
|
|
87
|
+
return builder;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpRUFTcUM7QUFDckMsbURBQStHO0FBRS9HLG1GQUFnRjtBQUNoRix1RkFBb0Y7QUFDcEYsdUZBQW9GO0FBQ3BGLHlFQUFzRTtBQUV0RSxvREFBNEI7QUFDNUIsNkRBQTBEO0FBRTFELE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLEdBQVc7UUFDZCxNQUFNLEVBQUUsR0FBRyxJQUFJLHVDQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBSyxDQUFDLENBQUM7UUFDM0QsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQztZQUNILFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQWUsQ0FBQyxlQUFlO29CQUNsQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUMsS0FBSywwQkFBZSxDQUFDLGlCQUFpQjtvQkFDcEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLEtBQUssMEJBQWUsQ0FBQyxlQUFlO29CQUNsQyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsS0FBSywwQkFBZSxDQUFDLFlBQVk7b0JBQy9CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxLQUFLLDBCQUFlLENBQUMsaUJBQWlCO29CQUNwQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsS0FBSywwQkFBZSxDQUFDLFFBQVE7b0JBQzNCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QztvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksa0NBQXVCLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQStDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHVDQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBSyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0Qsa0JBQWtCO0lBQ2xCLHlCQUF5QixDQUN2QixFQUErQztRQUUvQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSw2REFBNkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNELGtCQUFrQjtJQUNsQiwyQkFBMkIsQ0FDekIsRUFBK0M7UUFFL0MsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksaUVBQStCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFDRCxrQkFBa0I7SUFDbEIsZ0NBQWdDLENBQzlCLEVBQStDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLCtDQUE2QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBSyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsc0JBQXNCLENBQ3BCLEVBQStDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHFDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBSyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsMkJBQTJCLENBQ3pCLEVBQStDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLGlFQUErQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBSyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsMkJBQTJCLENBQ3pCLEVBQStDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLG1EQUF3QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBSyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDhCQUE4QjtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGlCQUFpQixDQUN2QixFQUEwRCxFQUMxRCxPQUFVO1FBRVYsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQS9GRCw4REErRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb250cmFjdENhbGxCdWlsZGVyLFxuICBDb3Ntb3NUcmFuc2FjdGlvbixcbiAgQ29zbW9zVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBDb3Ntb3NUcmFuc2ZlckJ1aWxkZXIsXG4gIFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIsXG4gIFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcixcbiAgU3Rha2luZ1JlZGVsZWdhdGVCdWlsZGVyLFxuICBTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcixcbn0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtY29zbW9zJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgRXBvY2hlZFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIgfSBmcm9tICcuL0Vwb2NoZWRTdGFraW5nQWN0aXZhdGVCdWlsZGVyJztcbmltcG9ydCB7IEVwb2NoZWRTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIgfSBmcm9tICcuL0Vwb2NoZWRTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXInO1xuaW1wb3J0IHsgRXBvY2hlZFN0YWtpbmdSZWRlbGVnYXRlQnVpbGRlciB9IGZyb20gJy4vRXBvY2hlZFN0YWtpbmdSZWRlbGVnYXRlQnVpbGRlcic7XG5pbXBvcnQgeyBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL0N1c3RvbVRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlcyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQmFieWxvblRyYW5zYWN0aW9uIH0gZnJvbSAnLi9CYWJ5bG9uVHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICBjb25zdCB0eCA9IG5ldyBCYWJ5bG9uVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgdXRpbHMpO1xuICAgIHR4LmVucmljaFRyYW5zYWN0aW9uRGV0YWlsc0Zyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0Q2FsbDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb250cmFjdENhbGxCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1JlZGVsZWdhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ1JlZGVsZWdhdGVCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQ3VzdG9tVHg6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyKHR4KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246ICcgKyBlLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBDb3Ntb3NUcmFuc2FjdGlvbjxCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlcz4pOiBDb3Ntb3NUcmFuc2ZlckJ1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IENvc21vc1RyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCB1dGlscykpO1xuICB9XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKFxuICAgIHR4PzogQ29zbW9zVHJhbnNhY3Rpb248QmFieWxvblNwZWNpZmljTWVzc2FnZXM+XG4gICk6IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEVwb2NoZWRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcsIHV0aWxzKSk7XG4gIH1cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcihcbiAgICB0eD86IENvc21vc1RyYW5zYWN0aW9uPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzPlxuICApOiBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEVwb2NoZWRTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdXRpbHMpKTtcbiAgfVxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0U3Rha2luZ1dpdGhkcmF3UmV3YXJkc0J1aWxkZXIoXG4gICAgdHg/OiBDb3Ntb3NUcmFuc2FjdGlvbjxCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlcz5cbiAgKTogU3Rha2luZ1dpdGhkcmF3UmV3YXJkc0J1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdXaXRoZHJhd1Jld2FyZHNCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcsIHV0aWxzKSk7XG4gIH1cblxuICBnZXRDb250cmFjdENhbGxCdWlsZGVyKFxuICAgIHR4PzogQ29zbW9zVHJhbnNhY3Rpb248QmFieWxvblNwZWNpZmljTWVzc2FnZXM+XG4gICk6IENvbnRyYWN0Q2FsbEJ1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IENvbnRyYWN0Q2FsbEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdXRpbHMpKTtcbiAgfVxuXG4gIGdldFN0YWtpbmdSZWRlbGVnYXRlQnVpbGRlcihcbiAgICB0eD86IENvc21vc1RyYW5zYWN0aW9uPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzPlxuICApOiBTdGFraW5nUmVkZWxlZ2F0ZUJ1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEVwb2NoZWRTdGFraW5nUmVkZWxlZ2F0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgdXRpbHMpKTtcbiAgfVxuXG4gIGdldEN1c3RvbVRyYW5zYWN0aW9uQnVpbGRlcihcbiAgICB0eD86IENvc21vc1RyYW5zYWN0aW9uPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzPlxuICApOiBDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXI8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEN1c3RvbVRyYW5zYWN0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCB1dGlscykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgQ29zbW9zVHJhbnNhY3Rpb25CdWlsZGVyPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzPj4oXG4gICAgdHg6IENvc21vc1RyYW5zYWN0aW9uPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzPiB8IHVuZGVmaW5lZCxcbiAgICBidWlsZGVyOiBUXG4gICk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { DecodedTxRaw } from '@cosmjs/proto-signing';
|
|
2
|
+
import { Coin } from '@cosmjs/stargate';
|
|
3
|
+
import { Any } from 'cosmjs-types/google/protobuf/any';
|
|
4
|
+
import { BabylonSpecificMessageKind, BabylonSpecificMessages, CreateBtcDelegationMessage, WithdrawRewardMessage } from './iface';
|
|
5
|
+
import { CosmosUtils, MessageData } from '@bitgo-beta/abstract-cosmos';
|
|
6
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
7
|
+
export declare class Utils extends CosmosUtils<BabylonSpecificMessages> {
|
|
8
|
+
babylonMessageKindToTypeUrl: Record<BabylonSpecificMessageKind, string>;
|
|
9
|
+
babylonMessageTypeUrlToKind: Record<string, BabylonSpecificMessageKind>;
|
|
10
|
+
protected wrappedMsgTypeUrls: Set<string>;
|
|
11
|
+
protected customMsgTypeUrls: Set<string>;
|
|
12
|
+
constructor();
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
getDelegateOrUndelegateMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<BabylonSpecificMessages>[];
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
getRedelegateMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<BabylonSpecificMessages>[];
|
|
17
|
+
/** @inheritdoc */
|
|
18
|
+
getCustomMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<BabylonSpecificMessages>[];
|
|
19
|
+
/** @inheritdoc */
|
|
20
|
+
getTransactionTypeFromTypeUrl(typeUrl: string): TransactionType | undefined;
|
|
21
|
+
/** @inheritdoc */
|
|
22
|
+
getSendMessagesForEncodingTx(cosmosLikeTransaction: Parameters<CosmosUtils<BabylonSpecificMessages>['getSendMessagesForEncodingTx']>[0]): Any[];
|
|
23
|
+
/** @inheritdoc */
|
|
24
|
+
validateCustomMessage(customMessage: BabylonSpecificMessages): void;
|
|
25
|
+
validateCreateBtcDelegationMessage(createBtcDelegationMessage: CreateBtcDelegationMessage): void;
|
|
26
|
+
validateWithdrawRewardMessage(withdrawRewardMessage: WithdrawRewardMessage): void;
|
|
27
|
+
/** @inheritdoc */
|
|
28
|
+
isValidAddress(address: string): boolean;
|
|
29
|
+
/** @inheritdoc */
|
|
30
|
+
isValidValidatorAddress(address: string): boolean;
|
|
31
|
+
/** @inheritdoc */
|
|
32
|
+
isValidContractAddress(address: string): boolean;
|
|
33
|
+
/** @inheritdoc */
|
|
34
|
+
validateAmount(amount: Coin): void;
|
|
35
|
+
}
|
|
36
|
+
declare const utils: Utils;
|
|
37
|
+
export default utils;
|
|
38
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AACvD,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGhF,qBAAa,KAAM,SAAQ,WAAW,CAAC,uBAAuB,CAAC;IACtD,2BAA2B,EAAE,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAG5E;IACK,2BAA2B,EAE7B,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAEhD,SAAS,CAAC,kBAAkB,cAIzB;IACH,SAAS,CAAC,iBAAiB,cAA8D;;IAWzF,kBAAkB;IAClB,+CAA+C,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC,uBAAuB,CAAC,EAAE;IAchH,kBAAkB;IAClB,qCAAqC,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC,uBAAuB,CAAC,EAAE;IAetG,kBAAkB;IAClB,iCAAiC,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC,uBAAuB,CAAC,EAAE;IAalG,kBAAkB;IAClB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAgB3E,kBAAkB;IAClB,4BAA4B,CAC1B,qBAAqB,EAAE,UAAU,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,GACzG,GAAG,EAAE;IAcR,kBAAkB;IAClB,qBAAqB,CAAC,aAAa,EAAE,uBAAuB,GAAG,IAAI;IAanE,kCAAkC,CAAC,0BAA0B,EAAE,0BAA0B,GAAG,IAAI;IA2ChG,6BAA6B,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,IAAI;IAgBjF,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,kBAAkB;IAClB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhD,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;CASnC;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,224 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.Utils = void 0;
|
|
40
|
+
const babylon_proto_ts_1 = require("@babylonlabs-io/babylon-proto-ts");
|
|
41
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
42
|
+
const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
|
|
43
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
44
|
+
const constants = __importStar(require("./constants"));
|
|
45
|
+
class Utils extends abstract_cosmos_1.CosmosUtils {
|
|
46
|
+
constructor() {
|
|
47
|
+
super();
|
|
48
|
+
this.babylonMessageKindToTypeUrl = {
|
|
49
|
+
CreateBtcDelegation: constants.createBTCDelegationMsgTypeUrl,
|
|
50
|
+
WithdrawReward: constants.withdrawRewardMsgTypeUrl,
|
|
51
|
+
};
|
|
52
|
+
this.babylonMessageTypeUrlToKind = Object.fromEntries(Object.entries(this.babylonMessageKindToTypeUrl).map(([key, value]) => [value, key]));
|
|
53
|
+
this.wrappedMsgTypeUrls = new Set([
|
|
54
|
+
constants.wrappedDelegateMsgTypeUrl,
|
|
55
|
+
constants.wrappedUndelegateMsgTypeUrl,
|
|
56
|
+
constants.wrappedBeginRedelegateTypeUrl,
|
|
57
|
+
]);
|
|
58
|
+
this.customMsgTypeUrls = new Set([constants.createBTCDelegationMsgTypeUrl]);
|
|
59
|
+
this.registry.register(constants.wrappedDelegateMsgTypeUrl, babylon_proto_ts_1.epochingtx.MsgWrappedDelegate);
|
|
60
|
+
this.registry.register(constants.wrappedUndelegateMsgTypeUrl, babylon_proto_ts_1.epochingtx.MsgWrappedUndelegate);
|
|
61
|
+
this.registry.register(constants.wrappedBeginRedelegateTypeUrl, babylon_proto_ts_1.epochingtx.MsgWrappedBeginRedelegate);
|
|
62
|
+
this.registry.register(constants.createBTCDelegationMsgTypeUrl, babylon_proto_ts_1.btcstakingtx.MsgCreateBTCDelegation);
|
|
63
|
+
this.registry.register(constants.withdrawRewardMsgTypeUrl, babylon_proto_ts_1.incentivetx.MsgWithdrawReward);
|
|
64
|
+
}
|
|
65
|
+
/** @inheritdoc */
|
|
66
|
+
getDelegateOrUndelegateMessageDataFromDecodedTx(decodedTx) {
|
|
67
|
+
return decodedTx.body.messages.map((message) => {
|
|
68
|
+
const value = this.registry.decode(message).msg;
|
|
69
|
+
return {
|
|
70
|
+
typeUrl: message.typeUrl,
|
|
71
|
+
value: {
|
|
72
|
+
delegatorAddress: value.delegatorAddress,
|
|
73
|
+
validatorAddress: value.validatorAddress,
|
|
74
|
+
amount: value.amount,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/** @inheritdoc */
|
|
80
|
+
getRedelegateMessageDataFromDecodedTx(decodedTx) {
|
|
81
|
+
return decodedTx.body.messages.map((message) => {
|
|
82
|
+
const value = this.registry.decode(message).msg;
|
|
83
|
+
return {
|
|
84
|
+
typeUrl: message.typeUrl,
|
|
85
|
+
value: {
|
|
86
|
+
delegatorAddress: value.delegatorAddress,
|
|
87
|
+
validatorSrcAddress: value.validatorSrcAddress,
|
|
88
|
+
validatorDstAddress: value.validatorDstAddress,
|
|
89
|
+
amount: value.amount,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** @inheritdoc */
|
|
95
|
+
getCustomMessageDataFromDecodedTx(decodedTx) {
|
|
96
|
+
return decodedTx.body.messages.map((message) => {
|
|
97
|
+
const value = this.registry.decode(message);
|
|
98
|
+
return {
|
|
99
|
+
typeUrl: message.typeUrl,
|
|
100
|
+
value: {
|
|
101
|
+
_kind: this.babylonMessageTypeUrlToKind[message.typeUrl],
|
|
102
|
+
...value,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/** @inheritdoc */
|
|
108
|
+
getTransactionTypeFromTypeUrl(typeUrl) {
|
|
109
|
+
switch (typeUrl) {
|
|
110
|
+
case constants.wrappedDelegateMsgTypeUrl:
|
|
111
|
+
return sdk_core_1.TransactionType.StakingActivate;
|
|
112
|
+
case constants.wrappedUndelegateMsgTypeUrl:
|
|
113
|
+
return sdk_core_1.TransactionType.StakingDeactivate;
|
|
114
|
+
case constants.wrappedBeginRedelegateTypeUrl:
|
|
115
|
+
return sdk_core_1.TransactionType.StakingRedelegate;
|
|
116
|
+
case constants.createBTCDelegationMsgTypeUrl:
|
|
117
|
+
case constants.withdrawRewardMsgTypeUrl:
|
|
118
|
+
return sdk_core_1.TransactionType.CustomTx;
|
|
119
|
+
default:
|
|
120
|
+
return super.getTransactionTypeFromTypeUrl(typeUrl);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/** @inheritdoc */
|
|
124
|
+
getSendMessagesForEncodingTx(cosmosLikeTransaction) {
|
|
125
|
+
return cosmosLikeTransaction.sendMessages.map(({ typeUrl, value }) => {
|
|
126
|
+
let valueToEncode = value;
|
|
127
|
+
if (this.wrappedMsgTypeUrls.has(typeUrl)) {
|
|
128
|
+
valueToEncode = { msg: value };
|
|
129
|
+
}
|
|
130
|
+
else if (this.customMsgTypeUrls.has(typeUrl)) {
|
|
131
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
132
|
+
const { _kind, ...rest } = value;
|
|
133
|
+
valueToEncode = rest;
|
|
134
|
+
}
|
|
135
|
+
return { typeUrl, value: valueToEncode };
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/** @inheritdoc */
|
|
139
|
+
validateCustomMessage(customMessage) {
|
|
140
|
+
switch (customMessage._kind) {
|
|
141
|
+
case 'CreateBtcDelegation':
|
|
142
|
+
this.validateCreateBtcDelegationMessage(customMessage);
|
|
143
|
+
break;
|
|
144
|
+
case 'WithdrawReward':
|
|
145
|
+
this.validateWithdrawRewardMessage(customMessage);
|
|
146
|
+
break;
|
|
147
|
+
default:
|
|
148
|
+
throw new sdk_core_1.InvalidTransactionError(`Unsupported BabylonSpecificMessages message`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
validateCreateBtcDelegationMessage(createBtcDelegationMessage) {
|
|
152
|
+
if (createBtcDelegationMessage._kind !== 'CreateBtcDelegation') {
|
|
153
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid CreateBtcDelegationMessage kind: ${createBtcDelegationMessage._kind}`);
|
|
154
|
+
}
|
|
155
|
+
// TODO: check the other fields more thoroughly
|
|
156
|
+
this.isObjPropertyNull(createBtcDelegationMessage, [
|
|
157
|
+
'stakerAddr',
|
|
158
|
+
// 'pop',
|
|
159
|
+
'btcPk',
|
|
160
|
+
'fpBtcPkList',
|
|
161
|
+
'stakingTime',
|
|
162
|
+
'stakingValue',
|
|
163
|
+
'stakingTx',
|
|
164
|
+
// 'stakingTxInclusionProof',
|
|
165
|
+
'slashingTx',
|
|
166
|
+
'delegatorSlashingSig',
|
|
167
|
+
'unbondingTime',
|
|
168
|
+
'unbondingTx',
|
|
169
|
+
'unbondingValue',
|
|
170
|
+
'unbondingSlashingTx',
|
|
171
|
+
'delegatorUnbondingSlashingSig',
|
|
172
|
+
]);
|
|
173
|
+
if (createBtcDelegationMessage.pop) {
|
|
174
|
+
this.isObjPropertyNull(createBtcDelegationMessage.pop, ['btcSigType', 'btcSig']);
|
|
175
|
+
}
|
|
176
|
+
if (createBtcDelegationMessage.stakingTxInclusionProof) {
|
|
177
|
+
this.isObjPropertyNull(createBtcDelegationMessage.stakingTxInclusionProof, ['key', 'proof']);
|
|
178
|
+
if (createBtcDelegationMessage.stakingTxInclusionProof.key) {
|
|
179
|
+
this.isObjPropertyNull(createBtcDelegationMessage.stakingTxInclusionProof.key, ['index', 'hash']);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (!this.isValidAddress(createBtcDelegationMessage.stakerAddr)) {
|
|
183
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid CreateBtcDelegationMessage stakerAddr: ${createBtcDelegationMessage.stakerAddr}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
validateWithdrawRewardMessage(withdrawRewardMessage) {
|
|
187
|
+
if (withdrawRewardMessage._kind !== 'WithdrawReward') {
|
|
188
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid WithdrawRewardMessage kind: ${withdrawRewardMessage._kind}`);
|
|
189
|
+
}
|
|
190
|
+
this.isObjPropertyNull(withdrawRewardMessage, ['type', 'address']);
|
|
191
|
+
if (!['finality_provider', 'btc_staker'].includes(withdrawRewardMessage.type)) {
|
|
192
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid WithdrawRewardMessage type: ${withdrawRewardMessage.type}`);
|
|
193
|
+
}
|
|
194
|
+
if (!this.isValidAddress(withdrawRewardMessage.address)) {
|
|
195
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid WithdrawRewardMessage address: ${withdrawRewardMessage.address}`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/** @inheritdoc */
|
|
199
|
+
isValidAddress(address) {
|
|
200
|
+
return this.isValidCosmosLikeAddressWithMemoId(address, constants.accountAddressRegex);
|
|
201
|
+
}
|
|
202
|
+
/** @inheritdoc */
|
|
203
|
+
isValidValidatorAddress(address) {
|
|
204
|
+
return this.isValidBech32AddressMatchingRegex(address, constants.validatorAddressRegex);
|
|
205
|
+
}
|
|
206
|
+
/** @inheritdoc */
|
|
207
|
+
isValidContractAddress(address) {
|
|
208
|
+
return this.isValidBech32AddressMatchingRegex(address, constants.contractAddressRegex);
|
|
209
|
+
}
|
|
210
|
+
/** @inheritdoc */
|
|
211
|
+
validateAmount(amount) {
|
|
212
|
+
const amountBig = (0, bignumber_js_1.default)(amount.amount);
|
|
213
|
+
if (amountBig.isLessThanOrEqualTo(0)) {
|
|
214
|
+
throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid amount: ' + amount.amount);
|
|
215
|
+
}
|
|
216
|
+
if (!constants.validDenoms.find((denom) => denom === amount.denom)) {
|
|
217
|
+
throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid denom: ' + amount.denom);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.Utils = Utils;
|
|
222
|
+
const utils = new Utils();
|
|
223
|
+
exports.default = utils;
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVFQUF5RjtBQUd6RixnRUFBcUM7QUFRckMsaUVBQXVFO0FBQ3ZFLG1EQUFnRjtBQUNoRix1REFBeUM7QUFFekMsTUFBYSxLQUFNLFNBQVEsNkJBQW9DO0lBZ0I3RDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBaEJILGdDQUEyQixHQUErQztZQUMvRSxtQkFBbUIsRUFBRSxTQUFTLENBQUMsNkJBQTZCO1lBQzVELGNBQWMsRUFBRSxTQUFTLENBQUMsd0JBQXdCO1NBQ25ELENBQUM7UUFDSyxnQ0FBMkIsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUN2QyxDQUFDO1FBRXRDLHVCQUFrQixHQUFHLElBQUksR0FBRyxDQUFTO1lBQzdDLFNBQVMsQ0FBQyx5QkFBeUI7WUFDbkMsU0FBUyxDQUFDLDJCQUEyQjtZQUNyQyxTQUFTLENBQUMsNkJBQTZCO1NBQ3hDLENBQUMsQ0FBQztRQUNPLHNCQUFpQixHQUFHLElBQUksR0FBRyxDQUFTLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQztRQUl2RixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMseUJBQXlCLEVBQUUsNkJBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsRUFBRSw2QkFBVSxDQUFDLG9CQUFvQixDQUFD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T0FBTyxFQUFFLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE1BQVk7UUFDekIsTUFBTSxTQUFTLEdBQUcsSUFBQSxzQkFBUyxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzREFBc0QsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUcsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25FLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxxREFBcUQsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUcsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFNRCxzQkEwTUM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVwb2NoaW5ndHgsIGJ0Y3N0YWtpbmd0eCwgaW5jZW50aXZldHggfSBmcm9tICdAYmFieWxvbmxhYnMtaW8vYmFieWxvbi1wcm90by10cyc7XG5pbXBvcnQgeyBEZWNvZGVkVHhSYXcgfSBmcm9tICdAY29zbWpzL3Byb3RvLXNpZ25pbmcnO1xuaW1wb3J0IHsgQ29pbiB9IGZyb20gJ0Bjb3NtanMvc3RhcmdhdGUnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgQW55IH0gZnJvbSAnY29zbWpzLXR5cGVzL2dvb2dsZS9wcm90b2J1Zi9hbnknO1xuaW1wb3J0IHtcbiAgQmFieWxvblNwZWNpZmljTWVzc2FnZUtpbmQsXG4gIEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzLFxuICBDcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZSxcbiAgV2l0aGRyYXdSZXdhcmRNZXNzYWdlLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IENvc21vc1V0aWxzLCBNZXNzYWdlRGF0YSB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWNvc21vcyc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGV4dGVuZHMgQ29zbW9zVXRpbHM8QmFieWxvblNwZWNpZmljTWVzc2FnZXM+IHtcbiAgcHVibGljIGJhYnlsb25NZXNzYWdlS2luZFRvVHlwZVVybDogUmVjb3JkPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VLaW5kLCBzdHJpbmc+ID0ge1xuICAgIENyZWF0ZUJ0Y0RlbGVnYXRpb246IGNvbnN0YW50cy5jcmVhdGVCVENEZWxlZ2F0aW9uTXNnVHlwZVVybCxcbiAgICBXaXRoZHJhd1Jld2FyZDogY29uc3RhbnRzLndpdGhkcmF3UmV3YXJkTXNnVHlwZVVybCxcbiAgfTtcbiAgcHVibGljIGJhYnlsb25NZXNzYWdlVHlwZVVybFRvS2luZCA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmJhYnlsb25NZXNzYWdlS2luZFRvVHlwZVVybCkubWFwKChba2V5LCB2YWx1ZV0pID0+IFt2YWx1ZSwga2V5XSlcbiAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlS2luZD47XG5cbiAgcHJvdGVjdGVkIHdyYXBwZWRNc2dUeXBlVXJscyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gICAgY29uc3RhbnRzLndyYXBwZWREZWxlZ2F0ZU1zZ1R5cGVVcmwsXG4gICAgY29uc3RhbnRzLndyYXBwZWRVbmRlbGVnYXRlTXNnVHlwZVVybCxcbiAgICBjb25zdGFudHMud3JhcHBlZEJlZ2luUmVkZWxlZ2F0ZVR5cGVVcmwsXG4gIF0pO1xuICBwcm90ZWN0ZWQgY3VzdG9tTXNnVHlwZVVybHMgPSBuZXcgU2V0PHN0cmluZz4oW2NvbnN0YW50cy5jcmVhdGVCVENEZWxlZ2F0aW9uTXNnVHlwZVVybF0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RyeS5yZWdpc3Rlcihjb25zdGFudHMud3JhcHBlZERlbGVnYXRlTXNnVHlwZVVybCwgZXBvY2hpbmd0eC5Nc2dXcmFwcGVkRGVsZWdhdGUpO1xuICAgIHRoaXMucmVnaXN0cnkucmVnaXN0ZXIoY29uc3RhbnRzLndyYXBwZWRVbmRlbGVnYXRlTXNnVHlwZVVybCwgZXBvY2hpbmd0eC5Nc2dXcmFwcGVkVW5kZWxlZ2F0ZSk7XG4gICAgdGhpcy5yZWdpc3RyeS5yZWdpc3Rlcihjb25zdGFudHMud3JhcHBlZEJlZ2luUmVkZWxlZ2F0ZVR5cGVVcmwsIGVwb2NoaW5ndHguTXNnV3JhcHBlZEJlZ2luUmVkZWxlZ2F0ZSk7XG4gICAgdGhpcy5yZWdpc3RyeS5yZWdpc3Rlcihjb25zdGFudHMuY3JlYXRlQlRDRGVsZWdhdGlvbk1zZ1R5cGVVcmwsIGJ0Y3N0YWtpbmd0eC5Nc2dDcmVhdGVCVENEZWxlZ2F0aW9uKTtcbiAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKGNvbnN0YW50cy53aXRoZHJhd1Jld2FyZE1zZ1R5cGVVcmwsIGluY2VudGl2ZXR4Lk1zZ1dpdGhkcmF3UmV3YXJkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXREZWxlZ2F0ZU9yVW5kZWxlZ2F0ZU1lc3NhZ2VEYXRhRnJvbURlY29kZWRUeChkZWNvZGVkVHg6IERlY29kZWRUeFJhdyk6IE1lc3NhZ2VEYXRhPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzPltdIHtcbiAgICByZXR1cm4gZGVjb2RlZFR4LmJvZHkubWVzc2FnZXMubWFwKChtZXNzYWdlKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmVnaXN0cnkuZGVjb2RlKG1lc3NhZ2UpLm1zZztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGVVcmw6IG1lc3NhZ2UudHlwZVVybCxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBkZWxlZ2F0b3JBZGRyZXNzOiB2YWx1ZS5kZWxlZ2F0b3JBZGRyZXNzLFxuICAgICAgICAgIHZhbGlkYXRvckFkZHJlc3M6IHZhbHVlLnZhbGlkYXRvckFkZHJlc3MsXG4gICAgICAgICAgYW1vdW50OiB2YWx1ZS5hbW91bnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFJlZGVsZWdhdGVNZXNzYWdlRGF0YUZyb21EZWNvZGVkVHgoZGVjb2RlZFR4OiBEZWNvZGVkVHhSYXcpOiBNZXNzYWdlRGF0YTxCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlcz5bXSB7XG4gICAgcmV0dXJuIGRlY29kZWRUeC5ib2R5Lm1lc3NhZ2VzLm1hcCgobWVzc2FnZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJlZ2lzdHJ5LmRlY29kZShtZXNzYWdlKS5tc2c7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlVXJsOiBtZXNzYWdlLnR5cGVVcmwsXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgZGVsZWdhdG9yQWRkcmVzczogdmFsdWUuZGVsZWdhdG9yQWRkcmVzcyxcbiAgICAgICAgICB2YWxpZGF0b3JTcmNBZGRyZXNzOiB2YWx1ZS52YWxpZGF0b3JTcmNBZGRyZXNzLFxuICAgICAgICAgIHZhbGlkYXRvckRzdEFkZHJlc3M6IHZhbHVlLnZhbGlkYXRvckRzdEFkZHJlc3MsXG4gICAgICAgICAgYW1vdW50OiB2YWx1ZS5hbW91bnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEN1c3RvbU1lc3NhZ2VEYXRhRnJvbURlY29kZWRUeChkZWNvZGVkVHg6IERlY29kZWRUeFJhdyk6IE1lc3NhZ2VEYXRhPEJhYnlsb25TcGVjaWZpY01lc3NhZ2VzPltdIHtcbiAgICByZXR1cm4gZGVjb2RlZFR4LmJvZHkubWVzc2FnZXMubWFwKChtZXNzYWdlKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmVnaXN0cnkuZGVjb2RlKG1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZVVybDogbWVzc2FnZS50eXBlVXJsLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIF9raW5kOiB0aGlzLmJhYnlsb25NZXNzYWdlVHlwZVVybFRvS2luZFttZXNzYWdlLnR5cGVVcmxdLFxuICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2FjdGlvblR5cGVGcm9tVHlwZVVybCh0eXBlVXJsOiBzdHJpbmcpOiBUcmFuc2FjdGlvblR5cGUgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAodHlwZVVybCkge1xuICAgICAgY2FzZSBjb25zdGFudHMud3JhcHBlZERlbGVnYXRlTXNnVHlwZVVybDpcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU7XG4gICAgICBjYXNlIGNvbnN0YW50cy53cmFwcGVkVW5kZWxlZ2F0ZU1zZ1R5cGVVcmw6XG4gICAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG4gICAgICBjYXNlIGNvbnN0YW50cy53cmFwcGVkQmVnaW5SZWRlbGVnYXRlVHlwZVVybDpcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nUmVkZWxlZ2F0ZTtcbiAgICAgIGNhc2UgY29uc3RhbnRzLmNyZWF0ZUJUQ0RlbGVnYXRpb25Nc2dUeXBlVXJsOlxuICAgICAgY2FzZSBjb25zdGFudHMud2l0aGRyYXdSZXdhcmRNc2dUeXBlVXJsOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRyYW5zYWN0aW9uVHlwZUZyb21UeXBlVXJsKHR5cGVVcmwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTZW5kTWVzc2FnZXNGb3JFbmNvZGluZ1R4KFxuICAgIGNvc21vc0xpa2VUcmFuc2FjdGlvbjogUGFyYW1ldGVyczxDb3Ntb3NVdGlsczxCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlcz5bJ2dldFNlbmRNZXNzYWdlc0ZvckVuY29kaW5nVHgnXT5bMF1cbiAgKTogQW55W10ge1xuICAgIHJldHVybiBjb3Ntb3NMaWtlVHJhbnNhY3Rpb24uc2VuZE1lc3NhZ2VzLm1hcCgoeyB0eXBlVXJsLCB2YWx1ZSB9KSA9PiB7XG4gICAgICBsZXQgdmFsdWVUb0VuY29kZTogdW5rbm93biA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMud3JhcHBlZE1zZ1R5cGVVcmxzLmhhcyh0eXBlVXJsKSkge1xuICAgICAgICB2YWx1ZVRvRW5jb2RlID0geyBtc2c6IHZhbHVlIH07XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY3VzdG9tTXNnVHlwZVVybHMuaGFzKHR5cGVVcmwpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgeyBfa2luZCwgLi4ucmVzdCB9ID0gdmFsdWUgYXMgQmFieWxvblNwZWNpZmljTWVzc2FnZXM7XG4gICAgICAgIHZhbHVlVG9FbmNvZGUgPSByZXN0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdHlwZVVybCwgdmFsdWU6IHZhbHVlVG9FbmNvZGUgfTtcbiAgICB9KSBhcyB1bmtub3duIGFzIEFueVtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQ3VzdG9tTWVzc2FnZShjdXN0b21NZXNzYWdlOiBCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlcyk6IHZvaWQge1xuICAgIHN3aXRjaCAoY3VzdG9tTWVzc2FnZS5fa2luZCkge1xuICAgICAgY2FzZSAnQ3JlYXRlQnRjRGVsZWdhdGlvbic6XG4gICAgICAgIHRoaXMudmFsaWRhdGVDcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZShjdXN0b21NZXNzYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdXaXRoZHJhd1Jld2FyZCc6XG4gICAgICAgIHRoaXMudmFsaWRhdGVXaXRoZHJhd1Jld2FyZE1lc3NhZ2UoY3VzdG9tTWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBVbnN1cHBvcnRlZCBCYWJ5bG9uU3BlY2lmaWNNZXNzYWdlcyBtZXNzYWdlYCk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVDcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZShjcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZTogQ3JlYXRlQnRjRGVsZWdhdGlvbk1lc3NhZ2UpOiB2b2lkIHtcbiAgICBpZiAoY3JlYXRlQnRjRGVsZWdhdGlvbk1lc3NhZ2UuX2tpbmQgIT09ICdDcmVhdGVCdGNEZWxlZ2F0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIENyZWF0ZUJ0Y0RlbGVnYXRpb25NZXNzYWdlIGtpbmQ6ICR7Y3JlYXRlQnRjRGVsZWdhdGlvbk1lc3NhZ2UuX2tpbmR9YCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogY2hlY2sgdGhlIG90aGVyIGZpZWxkcyBtb3JlIHRob3JvdWdobHlcbiAgICB0aGlzLmlzT2JqUHJvcGVydHlOdWxsKGNyZWF0ZUJ0Y0RlbGVnYXRpb25NZXNzYWdlLCBbXG4gICAgICAnc3Rha2VyQWRkcicsXG4gICAgICAvLyAncG9wJyxcbiAgICAgICdidGNQaycsXG4gICAgICAnZnBCdGNQa0xpc3QnLFxuICAgICAgJ3N0YWtpbmdUaW1lJyxcbiAgICAgICdzdGFraW5nVmFsdWUnLFxuICAgICAgJ3N0YWtpbmdUeCcsXG4gICAgICAvLyAnc3Rha2luZ1R4SW5jbHVzaW9uUHJvb2YnLFxuICAgICAgJ3NsYXNoaW5nVHgnLFxuICAgICAgJ2RlbGVnYXRvclNsYXNoaW5nU2lnJyxcbiAgICAgICd1bmJvbmRpbmdUaW1lJyxcbiAgICAgICd1bmJvbmRpbmdUeCcsXG4gICAgICAndW5ib25kaW5nVmFsdWUnLFxuICAgICAgJ3VuYm9uZGluZ1NsYXNoaW5nVHgnLFxuICAgICAgJ2RlbGVnYXRvclVuYm9uZGluZ1NsYXNoaW5nU2lnJyxcbiAgICBdKTtcblxuICAgIGlmIChjcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZS5wb3ApIHtcbiAgICAgIHRoaXMuaXNPYmpQcm9wZXJ0eU51bGwoY3JlYXRlQnRjRGVsZWdhdGlvbk1lc3NhZ2UucG9wLCBbJ2J0Y1NpZ1R5cGUnLCAnYnRjU2lnJ10pO1xuICAgIH1cblxuICAgIGlmIChjcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZS5zdGFraW5nVHhJbmNsdXNpb25Qcm9vZikge1xuICAgICAgdGhpcy5pc09ialByb3BlcnR5TnVsbChjcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZS5zdGFraW5nVHhJbmNsdXNpb25Qcm9vZiwgWydrZXknLCAncHJvb2YnXSk7XG5cbiAgICAgIGlmIChjcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZS5zdGFraW5nVHhJbmNsdXNpb25Qcm9vZi5rZXkpIHtcbiAgICAgICAgdGhpcy5pc09ialByb3BlcnR5TnVsbChjcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZS5zdGFraW5nVHhJbmNsdXNpb25Qcm9vZi5rZXksIFsnaW5kZXgnLCAnaGFzaCddKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNWYWxpZEFkZHJlc3MoY3JlYXRlQnRjRGVsZWdhdGlvbk1lc3NhZ2Uuc3Rha2VyQWRkcikpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgQ3JlYXRlQnRjRGVsZWdhdGlvbk1lc3NhZ2Ugc3Rha2VyQWRkcjogJHtjcmVhdGVCdGNEZWxlZ2F0aW9uTWVzc2FnZS5zdGFrZXJBZGRyfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVXaXRoZHJhd1Jld2FyZE1lc3NhZ2Uod2l0aGRyYXdSZXdhcmRNZXNzYWdlOiBXaXRoZHJhd1Jld2FyZE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBpZiAod2l0aGRyYXdSZXdhcmRNZXNzYWdlLl9raW5kICE9PSAnV2l0aGRyYXdSZXdhcmQnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgV2l0aGRyYXdSZXdhcmRNZXNzYWdlIGtpbmQ6ICR7d2l0aGRyYXdSZXdhcmRNZXNzYWdlLl9raW5kfWApO1xuICAgIH1cblxuICAgIHRoaXMuaXNPYmpQcm9wZXJ0eU51bGwod2l0aGRyYXdSZXdhcmRNZXNzYWdlLCBbJ3R5cGUnLCAnYWRkcmVzcyddKTtcblxuICAgIGlmICghWydmaW5hbGl0eV9wcm92aWRlcicsICdidGNfc3Rha2VyJ10uaW5jbHVkZXMod2l0aGRyYXdSZXdhcmRNZXNzYWdlLnR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgV2l0aGRyYXdSZXdhcmRNZXNzYWdlIHR5cGU6ICR7d2l0aGRyYXdSZXdhcmRNZXNzYWdlLnR5cGV9YCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBZGRyZXNzKHdpdGhkcmF3UmV3YXJkTWVzc2FnZS5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIFdpdGhkcmF3UmV3YXJkTWVzc2FnZSBhZGRyZXNzOiAke3dpdGhkcmF3UmV3YXJkTWVzc2FnZS5hZGRyZXNzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQ29zbW9zTGlrZUFkZHJlc3NXaXRoTWVtb0lkKGFkZHJlc3MsIGNvbnN0YW50cy5hY2NvdW50QWRkcmVzc1JlZ2V4KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVmFsaWRhdG9yQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQmVjaDMyQWRkcmVzc01hdGNoaW5nUmVnZXgoYWRkcmVzcywgY29uc3RhbnRzLnZhbGlkYXRvckFkZHJlc3NSZWdleCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZENvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQmVjaDMyQWRkcmVzc01hdGNoaW5nUmVnZXgoYWRkcmVzcywgY29uc3RhbnRzLmNvbnRyYWN0QWRkcmVzc1JlZ2V4KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUFtb3VudChhbW91bnQ6IENvaW4pOiB2b2lkIHtcbiAgICBjb25zdCBhbW91bnRCaWcgPSBCaWdOdW1iZXIoYW1vdW50LmFtb3VudCk7XG4gICAgaWYgKGFtb3VudEJpZy5pc0xlc3NUaGFuT3JFcXVhbFRvKDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogdmFsaWRhdGVBbW91bnQ6IEludmFsaWQgYW1vdW50OiAnICsgYW1vdW50LmFtb3VudCk7XG4gICAgfVxuICAgIGlmICghY29uc3RhbnRzLnZhbGlkRGVub21zLmZpbmQoKGRlbm9tKSA9PiBkZW5vbSA9PT0gYW1vdW50LmRlbm9tKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd0cmFuc2FjdGlvbkJ1aWxkZXI6IHZhbGlkYXRlQW1vdW50OiBJbnZhbGlkIGRlbm9tOiAnICsgYW1vdW50LmRlbm9tKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.register = void 0;
|
|
4
|
+
const baby_1 = require("./baby");
|
|
5
|
+
const tbaby_1 = require("./tbaby");
|
|
6
|
+
const register = (sdk) => {
|
|
7
|
+
sdk.register('baby', baby_1.Baby.createInstance);
|
|
8
|
+
sdk.register('tbaby', tbaby_1.Tbaby.createInstance);
|
|
9
|
+
};
|
|
10
|
+
exports.register = register;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBQzlCLG1DQUFnQztBQUV6QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFieSB9IGZyb20gJy4vYmFieSc7XG5pbXBvcnQgeyBUYmFieSB9IGZyb20gJy4vdGJhYnknO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCdiYWJ5JywgQmFieS5jcmVhdGVJbnN0YW5jZSk7XG4gIHNkay5yZWdpc3RlcigndGJhYnknLCBUYmFieS5jcmVhdGVJbnN0YW5jZSk7XG59O1xuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testnet Babylon
|
|
3
|
+
*
|
|
4
|
+
* @format
|
|
5
|
+
*/
|
|
6
|
+
import { BaseCoin, BitGoBase } from '@bitgo-beta/sdk-core';
|
|
7
|
+
import { Baby } from './baby';
|
|
8
|
+
import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
|
|
9
|
+
export declare class Tbaby extends Baby {
|
|
10
|
+
protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
|
|
11
|
+
protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
12
|
+
static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=tbaby.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tbaby.d.ts","sourceRoot":"","sources":["../../src/tbaby.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAElE,qBAAa,KAAM,SAAQ,IAAI;IAC7B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;CAG3F"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Tbaby = void 0;
|
|
4
|
+
const baby_1 = require("./baby");
|
|
5
|
+
class Tbaby extends baby_1.Baby {
|
|
6
|
+
constructor(bitgo, staticsCoin) {
|
|
7
|
+
super(bitgo, staticsCoin);
|
|
8
|
+
if (!staticsCoin) {
|
|
9
|
+
throw new Error('missing required constructor parameter staticsCoin');
|
|
10
|
+
}
|
|
11
|
+
this._staticsCoin = staticsCoin;
|
|
12
|
+
}
|
|
13
|
+
static createInstance(bitgo, staticsCoin) {
|
|
14
|
+
return new Tbaby(bitgo, staticsCoin);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Tbaby = Tbaby;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGJhYnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGJhYnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsaUNBQThCO0FBRzlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFFN0IsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBZkQsc0JBZUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlc3RuZXQgQmFieWxvblxuICpcbiAqIEBmb3JtYXRcbiAqL1xuaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhYnkgfSBmcm9tICcuL2JhYnknO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBjbGFzcyBUYmFieSBleHRlbmRzIEJhYnkge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRpY3NDb2luOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+O1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRiYWJ5KGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bitgo-beta/sdk-coin-baby",
|
|
3
|
+
"version": "0.0.0-semantic-release-managed",
|
|
4
|
+
"description": "BitGo SDK coin library for Babylon",
|
|
5
|
+
"main": "./dist/src/index.js",
|
|
6
|
+
"types": "./dist/src/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "yarn tsc --build --incremental --verbose .",
|
|
9
|
+
"fmt": "prettier --write .",
|
|
10
|
+
"check-fmt": "prettier --check .",
|
|
11
|
+
"clean": "rm -r ./dist",
|
|
12
|
+
"lint": "eslint --quiet .",
|
|
13
|
+
"prepare": "npm run build",
|
|
14
|
+
"test": "npm run coverage",
|
|
15
|
+
"coverage": "nyc -- npm run unit-test",
|
|
16
|
+
"unit-test": "mocha"
|
|
17
|
+
},
|
|
18
|
+
"author": "BitGo SDK Team <sdkteam@bitgo.com>",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=20 <23"
|
|
22
|
+
},
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "https://github.com/BitGo/BitGoJS.git",
|
|
26
|
+
"directory": "modules/sdk-coin-baby"
|
|
27
|
+
},
|
|
28
|
+
"lint-staged": {
|
|
29
|
+
"*.{js,ts}": [
|
|
30
|
+
"yarn prettier --write",
|
|
31
|
+
"yarn eslint --fix"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
},
|
|
37
|
+
"nyc": {
|
|
38
|
+
"extension": [
|
|
39
|
+
".ts"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@babylonlabs-io/babylon-proto-ts": "1.0.0",
|
|
44
|
+
"@bitgo-beta/abstract-cosmos": "0.0.0-semantic-release-managed",
|
|
45
|
+
"@bitgo-beta/sdk-core": "0.0.0-semantic-release-managed",
|
|
46
|
+
"@bitgo-beta/statics": "0.0.0-semantic-release-managed",
|
|
47
|
+
"@cosmjs/amino": "^0.29.5",
|
|
48
|
+
"@cosmjs/encoding": "^0.29.5",
|
|
49
|
+
"@cosmjs/proto-signing": "^0.29.5",
|
|
50
|
+
"@cosmjs/stargate": "^0.29.5",
|
|
51
|
+
"bignumber.js": "^9.1.1",
|
|
52
|
+
"cosmjs-types": "^0.6.1"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@bitgo-beta/sdk-api": "0.0.0-semantic-release-managed",
|
|
56
|
+
"@bitgo/sdk-test": "0.0.0-semantic-release-managed"
|
|
57
|
+
},
|
|
58
|
+
"gitHead": "cf1b83546a50fba7d18cf9af363c5663dbec2059"
|
|
59
|
+
}
|