@bitgo-beta/abstract-cosmos 1.0.1-beta.13 → 1.0.1-beta.1300
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/resources/MsgCompiled.d.ts +1212 -0
- package/dist/resources/MsgCompiled.js +2761 -0
- package/dist/src/cosmosCoin.d.ts +140 -7
- package/dist/src/cosmosCoin.d.ts.map +1 -1
- package/dist/src/cosmosCoin.js +554 -119
- package/dist/src/index.js +6 -2
- package/dist/src/lib/ContractCallBuilder.d.ts +13 -0
- package/dist/src/lib/ContractCallBuilder.d.ts.map +1 -0
- package/dist/src/lib/ContractCallBuilder.js +61 -0
- package/dist/src/lib/StakingActivateBuilder.d.ts +13 -0
- package/dist/src/lib/StakingActivateBuilder.d.ts.map +1 -0
- package/dist/src/lib/StakingActivateBuilder.js +61 -0
- package/dist/src/lib/StakingDeactivateBuilder.d.ts +13 -0
- package/dist/src/lib/StakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/src/lib/StakingDeactivateBuilder.js +61 -0
- package/dist/src/lib/StakingRedelegateBuilder.d.ts +13 -0
- package/dist/src/lib/StakingRedelegateBuilder.d.ts.map +1 -0
- package/dist/src/lib/StakingRedelegateBuilder.js +61 -0
- package/dist/src/lib/StakingWithdrawRewardsBuilder.d.ts +13 -0
- package/dist/src/lib/StakingWithdrawRewardsBuilder.d.ts.map +1 -0
- package/dist/src/lib/StakingWithdrawRewardsBuilder.js +61 -0
- package/dist/src/lib/constants.d.ts +4 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +6 -2
- package/dist/src/lib/iface.d.ts +70 -7
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +18 -1
- package/dist/src/lib/index.d.ts +7 -1
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +43 -5
- package/dist/src/lib/keyPair.js +9 -10
- package/dist/src/lib/transaction.d.ts +19 -8
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +159 -73
- package/dist/src/lib/transactionBuilder.d.ts +41 -12
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +105 -4
- package/dist/src/lib/transferBuilder.d.ts +13 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +61 -0
- package/dist/src/lib/utils.d.ts +225 -18
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +545 -34
- package/dist/tsconfig.tsbuildinfo +1 -10808
- package/package.json +18 -11
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -17
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CosmosTransactionBuilder = void 0;
|
|
4
4
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const crypto_1 = require("@cosmjs/crypto");
|
|
6
|
+
const proto_signing_1 = require("@cosmjs/proto-signing");
|
|
5
7
|
const keyPair_1 = require("./keyPair");
|
|
6
|
-
const
|
|
8
|
+
const transaction_1 = require("./transaction");
|
|
7
9
|
class CosmosTransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
8
|
-
constructor(_coinConfig) {
|
|
10
|
+
constructor(_coinConfig, _utils) {
|
|
9
11
|
super(_coinConfig);
|
|
12
|
+
this._transaction = new transaction_1.CosmosTransaction(_coinConfig, _utils);
|
|
10
13
|
}
|
|
11
14
|
/** @inheritdoc */
|
|
12
15
|
get transaction() {
|
|
@@ -27,7 +30,7 @@ class CosmosTransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
27
30
|
* @returns {TransactionBuilder} This transaction builder
|
|
28
31
|
*/
|
|
29
32
|
sequence(sequence) {
|
|
30
|
-
|
|
33
|
+
this._utils.validateSequence(sequence);
|
|
31
34
|
this._sequence = sequence;
|
|
32
35
|
return this;
|
|
33
36
|
}
|
|
@@ -75,6 +78,104 @@ class CosmosTransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
75
78
|
throw new sdk_core_1.BuildTransactionError(`Key validation failed`);
|
|
76
79
|
}
|
|
77
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Sets gas budget of this transaction
|
|
83
|
+
* Gas budget consist of fee amount and gas limit. Division feeAmount/gasLimit represents
|
|
84
|
+
* the gas-fee and it should be more than minimum required gas-fee to process the transaction
|
|
85
|
+
* @param {FeeData} gasBudget
|
|
86
|
+
* @returns {TransactionBuilder} this transaction builder
|
|
87
|
+
*/
|
|
88
|
+
gasBudget(gasBudget) {
|
|
89
|
+
this._utils.validateGasBudget(gasBudget);
|
|
90
|
+
this._gasBudget = gasBudget;
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Initialize the transaction builder fields using the decoded transaction data
|
|
95
|
+
* @param {CosmosTransaction} tx the transaction data
|
|
96
|
+
*/
|
|
97
|
+
initBuilder(tx) {
|
|
98
|
+
this._transaction = tx;
|
|
99
|
+
const txData = tx.toJson();
|
|
100
|
+
this.gasBudget(txData.gasBudget);
|
|
101
|
+
this.messages(txData.sendMessages.map((message) => {
|
|
102
|
+
return message.value;
|
|
103
|
+
}));
|
|
104
|
+
this.sequence(txData.sequence);
|
|
105
|
+
this.publicKey(txData.publicKey);
|
|
106
|
+
this.accountNumber(txData.accountNumber);
|
|
107
|
+
this.chainId(txData.chainId);
|
|
108
|
+
this.memo(txData.memo);
|
|
109
|
+
if (tx.signature && tx.signature.length > 0) {
|
|
110
|
+
this.addSignature({ pub: txData.publicKey }, Buffer.from(tx.signature[0], 'hex'));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Creates a new CosmosTransaction instance
|
|
115
|
+
*/
|
|
116
|
+
newTransaction() {
|
|
117
|
+
return new transaction_1.CosmosTransaction(this._coinConfig, this._utils);
|
|
118
|
+
}
|
|
119
|
+
/** @inheritdoc */
|
|
120
|
+
fromImplementation(rawTransaction) {
|
|
121
|
+
const tx = this.newTransaction();
|
|
122
|
+
tx.enrichTransactionDetailsFromRawTransaction(rawTransaction);
|
|
123
|
+
this.initBuilder(tx);
|
|
124
|
+
return this.transaction;
|
|
125
|
+
}
|
|
126
|
+
/** @inheritdoc */
|
|
127
|
+
async buildImplementation() {
|
|
128
|
+
this.transaction.transactionType = this.transactionType;
|
|
129
|
+
if (this._accountNumber) {
|
|
130
|
+
this.transaction.accountNumber = this._accountNumber;
|
|
131
|
+
}
|
|
132
|
+
if (this._chainId) {
|
|
133
|
+
this.transaction.chainId = this._chainId;
|
|
134
|
+
}
|
|
135
|
+
this.transaction.cosmosLikeTransaction = this._utils.createTransaction(this._sequence, this._messages, this._gasBudget, this._publicKey, this._memo);
|
|
136
|
+
const privateKey = this._signer?.getPrivateKey();
|
|
137
|
+
if (privateKey !== undefined && this.transaction.cosmosLikeTransaction.publicKey !== undefined) {
|
|
138
|
+
const signDoc = this._utils.createSignDoc(this.transaction.cosmosLikeTransaction, this._accountNumber, this._chainId);
|
|
139
|
+
const txnHash = Uint8Array.from(this._utils.getHashFunction().update((0, proto_signing_1.makeSignBytes)(signDoc)).digest());
|
|
140
|
+
const signature = await crypto_1.Secp256k1.createSignature(txnHash, privateKey);
|
|
141
|
+
const compressedSig = Buffer.concat([signature.r(), signature.s()]);
|
|
142
|
+
this.addSignature({ pub: this.transaction.cosmosLikeTransaction.publicKey }, compressedSig);
|
|
143
|
+
}
|
|
144
|
+
if (this._signature !== undefined) {
|
|
145
|
+
this.transaction.addSignature(this._signature.toString('hex'));
|
|
146
|
+
this.transaction.cosmosLikeTransaction = this._utils.createTransactionWithHash(this._sequence, this._messages, this._gasBudget, this._publicKey, this._signature, this._memo);
|
|
147
|
+
}
|
|
148
|
+
this.transaction.loadInputsAndOutputs();
|
|
149
|
+
return this.transaction;
|
|
150
|
+
}
|
|
151
|
+
/** @inheritdoc */
|
|
152
|
+
validateAddress(address, addressFormat) {
|
|
153
|
+
if (!(this._utils.isValidAddress(address.address) || this._utils.isValidValidatorAddress(address.address))) {
|
|
154
|
+
throw new sdk_core_1.BuildTransactionError('transactionBuilder: address isValidAddress check failed: ' + address.address);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/** @inheritdoc */
|
|
158
|
+
validateRawTransaction(rawTransaction) {
|
|
159
|
+
if (!rawTransaction) {
|
|
160
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid raw transaction: Undefined rawTransaction');
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
165
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid raw transaction: ' + e.message);
|
|
166
|
+
}
|
|
167
|
+
const cosmosTransaction = this._utils.deserializeTransaction(rawTransaction);
|
|
168
|
+
this._utils.validateTransaction(cosmosTransaction);
|
|
169
|
+
}
|
|
170
|
+
/** @inheritdoc */
|
|
171
|
+
validateTransaction(transaction) {
|
|
172
|
+
this._utils.validateTransaction({
|
|
173
|
+
sequence: this._sequence,
|
|
174
|
+
sendMessages: this._messages,
|
|
175
|
+
gasBudget: this._gasBudget,
|
|
176
|
+
publicKey: this._publicKey,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
78
179
|
}
|
|
79
180
|
exports.CosmosTransactionBuilder = CosmosTransactionBuilder;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBTzhCO0FBVzlCLHVDQUFxRDtBQUVyRCxtQ0FBNEI7QUFFNUIsTUFBc0Isd0JBQXlCLFNBQVEsaUNBQXNCO0lBWTNFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFPRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQThCO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsWUFBWSxDQUFDLFNBQXdCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLFFBQWdCO1FBQ3ZCLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFhRCxTQUFTLENBQUMsU0FBNkI7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQWlDO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUEyQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBd0I7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDckMsTUFBTSxJQUFJLHVCQUFZLENBQUMsMENBQTBDLENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDL0IsTUFBTSxJQUFJLHVCQUFZLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUM5RDtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx1QkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYSxDQUFDLEtBQWdCO1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVyxDQUFDLEdBQVk7UUFDdEIsSUFBSTtZQUNGLElBQUksdUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUMvQjtRQUFDLE1BQU07WUFDTixNQUFNLElBQUksZ0NBQXFCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7Q0FDRjtBQTVHRCw0REE0R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduaW5nRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQge1xuICBEZWxlZ2F0ZU9yVW5kZWxlZ2V0ZU1lc3NhZ2UsXG4gIEZlZURhdGEsXG4gIE1lc3NhZ2VEYXRhLFxuICBTZW5kTWVzc2FnZSxcbiAgV2l0aGRyYXdEZWxlZ2F0b3JSZXdhcmRzTWVzc2FnZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBDb3Ntb3NLZXlQYWlyIGFzIEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgQ29zbW9zVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvc21vc1RyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBDb3Ntb3NUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9zZXF1ZW5jZTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX21lc3NhZ2VzOiBNZXNzYWdlRGF0YVtdO1xuICBwcm90ZWN0ZWQgX2dhc0J1ZGdldDogRmVlRGF0YTtcbiAgcHJvdGVjdGVkIF9hY2NvdW50TnVtYmVyPzogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZTogQnVmZmVyO1xuICBwcm90ZWN0ZWQgX2NoYWluSWQ/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcHVibGljS2V5Pzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NpZ25lcjogS2V5UGFpcjtcbiAgcHJvdGVjdGVkIF9tZW1vPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBDb3Ntb3NUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IENvc21vc1RyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICB0aGlzLl9wdWJsaWNLZXkgPSBwdWJsaWNLZXkucHViO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgc2VxdWVuY2Ugb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHNlcXVlbmNlIC0gc2VxdWVuY2UgZGF0YSBmb3IgdHggc2lnbmVyXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VxdWVuY2Uoc2VxdWVuY2U6IG51bWJlcik6IHRoaXMge1xuICAgIHV0aWxzLnZhbGlkYXRlU2VxdWVuY2Uoc2VxdWVuY2UpO1xuICAgIHRoaXMuX3NlcXVlbmNlID0gc2VxdWVuY2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBtZXNzYWdlcyB0byB0aGUgdHJhbnNhY3Rpb24gYm9keS4gTWVzc2FnZSB0eXBlIHdpbGwgYmUgZGlmZmVyZW50IGJhc2VkIG9uIHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqIC0gRm9yIEBzZWUgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZSByZXF1aXJlZCB0eXBlIGlzIEBzZWUgRGVsZWdhdGVPclVuZGVsZWdldGVNZXNzYWdlXG4gICAqIC0gRm9yIEBzZWUgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlIHJlcXVpcmVkIHR5cGUgaXMgQHNlZSBEZWxlZ2F0ZU9yVW5kZWxlZ2V0ZU1lc3NhZ2VcbiAgICogLSBGb3IgQHNlZSBUcmFuc2FjdGlvblR5cGUuU2VuZCByZXF1aXJlZCB0eXBlIGlzIEBzZWUgU2VuZE1lc3NhZ2VcbiAgICogLSBGb3IgQHNlZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3IHJlcXVpcmVkIHR5cGUgaXMgQHNlZSBXaXRoZHJhd0RlbGVnYXRvclJld2FyZHNNZXNzYWdlXG4gICAqIEBwYXJhbSB7KFNlbmRNZXNzYWdlIHwgRGVsZWdhdGVPclVuZGVsZWdldGVNZXNzYWdlIHwgV2l0aGRyYXdEZWxlZ2F0b3JSZXdhcmRzTWVzc2FnZSlbXX0gbWVzc2FnZXNcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBhYnN0cmFjdCBtZXNzYWdlcyhtZXNzYWdlczogKFNlbmRNZXNzYWdlIHwgRGVsZWdhdGVPclVuZGVsZWdldGVNZXNzYWdlIHwgV2l0aGRyYXdEZWxlZ2F0b3JSZXdhcmRzTWVzc2FnZSlbXSk6IHRoaXM7XG5cbiAgcHVibGljS2V5KHB1YmxpY0tleTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgdGhpcy5fcHVibGljS2V5ID0gcHVibGljS2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWNjb3VudE51bWJlcihhY2NvdW50TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQpOiB0aGlzIHtcbiAgICB0aGlzLl9hY2NvdW50TnVtYmVyID0gYWNjb3VudE51bWJlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNoYWluSWQoY2hhaW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgdGhpcy5fY2hhaW5JZCA9IGNoYWluSWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtZW1vKG1lbW86IHN0cmluZyB8IHVuZGVmaW5lZCk6IHRoaXMge1xuICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogQ29zbW9zVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMudmFsaWRhdGVLZXkoa2V5KTtcbiAgICBpZiAodGhpcy5fYWNjb3VudE51bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdhY2NvdW50TnVtYmVyIGlzIHJlcXVpcmVkIGJlZm9yZSBzaWduaW5nJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jaGFpbklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ2NoYWluSWQgaXMgcmVxdWlyZWQgYmVmb3JlIHNpZ25pbmcnKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgdGhpcy5fcHVibGljS2V5ID0gdGhpcy5fc2lnbmVyLmdldEtleXMoKS5wdWI7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBLZXkgdmFsaWRhdGlvbiBmYWlsZWRgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBUzhCO0FBRTlCLDJDQUEyQztBQUMzQyx5REFBc0Q7QUFHdEQsdUNBQXFEO0FBQ3JELCtDQUFrRDtBQUdsRCxNQUFzQix3QkFBZ0QsU0FBUSxpQ0FBc0I7SUFjbEcsWUFBWSxXQUFpQyxFQUFFLE1BQWtDO1FBQy9FLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksK0JBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFPRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQTZDO1FBQ3JFLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsWUFBWSxDQUFDLFNBQXdCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLFFBQWdCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBY0QsU0FBUyxDQUFDLFNBQTZCO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lB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LEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxXQUE2QztRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDNUIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5T0QsNERBOE9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduaW5nRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgU2VjcDI1NmsxIH0gZnJvbSAnQGNvc21qcy9jcnlwdG8nO1xuaW1wb3J0IHsgbWFrZVNpZ25CeXRlcyB9IGZyb20gJ0Bjb3NtanMvcHJvdG8tc2lnbmluZyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBDb3Ntb3NUcmFuc2FjdGlvbk1lc3NhZ2UsIEZlZURhdGEsIE1lc3NhZ2VEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBDb3Ntb3NLZXlQYWlyIGFzIEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgQ29zbW9zVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IENvc21vc1V0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXI8Q3VzdG9tTWVzc2FnZSA9IG5ldmVyPiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBDb3Ntb3NUcmFuc2FjdGlvbjxDdXN0b21NZXNzYWdlPjtcbiAgcHJvdGVjdGVkIF9zZXF1ZW5jZTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX21lc3NhZ2VzOiBNZXNzYWdlRGF0YTxDdXN0b21NZXNzYWdlPltdO1xuICBwcm90ZWN0ZWQgX2dhc0J1ZGdldDogRmVlRGF0YTtcbiAgcHJvdGVjdGVkIF9hY2NvdW50TnVtYmVyPzogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZTogQnVmZmVyO1xuICBwcm90ZWN0ZWQgX2NoYWluSWQ/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcHVibGljS2V5Pzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NpZ25lcjogS2V5UGFpcjtcbiAgcHJvdGVjdGVkIF9tZW1vPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBfdXRpbHM6IENvc21vc1V0aWxzPEN1c3RvbU1lc3NhZ2U+O1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgX3V0aWxzOiBDb3Ntb3NVdGlsczxDdXN0b21NZXNzYWdlPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBDb3Ntb3NUcmFuc2FjdGlvbihfY29pbkNvbmZpZywgX3V0aWxzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBDb3Ntb3NUcmFuc2FjdGlvbjxDdXN0b21NZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IENvc21vc1RyYW5zYWN0aW9uPEN1c3RvbU1lc3NhZ2U+KSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICB0aGlzLl9wdWJsaWNLZXkgPSBwdWJsaWNLZXkucHViO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgc2VxdWVuY2Ugb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHNlcXVlbmNlIC0gc2VxdWVuY2UgZGF0YSBmb3IgdHggc2lnbmVyXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VxdWVuY2Uoc2VxdWVuY2U6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuX3V0aWxzLnZhbGlkYXRlU2VxdWVuY2Uoc2VxdWVuY2UpO1xuICAgIHRoaXMuX3NlcXVlbmNlID0gc2VxdWVuY2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBtZXNzYWdlcyB0byB0aGUgdHJhbnNhY3Rpb24gYm9keS4gTWVzc2FnZSB0eXBlIHdpbGwgYmUgZGlmZmVyZW50IGJhc2VkIG9uIHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqIC0gRm9yIEBzZWUgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZSByZXF1aXJlZCB0eXBlIGlzIEBzZWUgRGVsZWdhdGVPclVuZGVsZWdldGVNZXNzYWdlXG4gICAqIC0gRm9yIEBzZWUgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlIHJlcXVpcmVkIHR5cGUgaXMgQHNlZSBEZWxlZ2F0ZU9yVW5kZWxlZ2V0ZU1lc3NhZ2VcbiAgICogLSBGb3IgQHNlZSBUcmFuc2FjdGlvblR5cGUuU2VuZCByZXF1aXJlZCB0eXBlIGlzIEBzZWUgU2VuZE1lc3NhZ2VcbiAgICogLSBGb3IgQHNlZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3IHJlcXVpcmVkIHR5cGUgaXMgQHNlZSBXaXRoZHJhd0RlbGVnYXRvclJld2FyZHNNZXNzYWdlXG4gICAqIC0gRm9yIEBzZWUgVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0Q2FsbCByZXF1aXJlZCB0eXBlIGlzIEBzZWUgRXhlY3V0ZUNvbnRyYWN0TWVzc2FnZVxuICAgKiBAcGFyYW0ge0Nvc21vc1RyYW5zYWN0aW9uTWVzc2FnZVtdfSBtZXNzYWdlc1xuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGFic3RyYWN0IG1lc3NhZ2VzKG1lc3NhZ2VzOiBDb3Ntb3NUcmFuc2FjdGlvbk1lc3NhZ2U8Q3VzdG9tTWVzc2FnZT5bXSk6IHRoaXM7XG5cbiAgcHVibGljS2V5KHB1YmxpY0tleTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgdGhpcy5fcHVibGljS2V5ID0gcHVibGljS2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWNjb3VudE51bWJlcihhY2NvdW50TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQpOiB0aGlzIHtcbiAgICB0aGlzLl9hY2NvdW50TnVtYmVyID0gYWNjb3VudE51bWJlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNoYWluSWQoY2hhaW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgdGhpcy5fY2hhaW5JZCA9IGNoYWluSWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtZW1vKG1lbW86IHN0cmluZyB8IHVuZGVmaW5lZCk6IHRoaXMge1xuICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogQ29zbW9zVHJhbnNhY3Rpb248Q3VzdG9tTWVzc2FnZT4ge1xuICAgIHRoaXMudmFsaWRhdGVLZXkoa2V5KTtcbiAgICBpZiAodGhpcy5fYWNjb3VudE51bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdhY2NvdW50TnVtYmVyIGlzIHJlcXVpcmVkIGJlZm9yZSBzaWduaW5nJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jaGFpbklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ2NoYWluSWQgaXMgcmVxdWlyZWQgYmVmb3JlIHNpZ25pbmcnKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgdGhpcy5fcHVibGljS2V5ID0gdGhpcy5fc2lnbmVyLmdldEtleXMoKS5wdWI7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBLZXkgdmFsaWRhdGlvbiBmYWlsZWRgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBnYXMgYnVkZ2V0IG9mIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogR2FzIGJ1ZGdldCBjb25zaXN0IG9mIGZlZSBhbW91bnQgYW5kIGdhcyBsaW1pdC4gRGl2aXNpb24gZmVlQW1vdW50L2dhc0xpbWl0IHJlcHJlc2VudHNcbiAgICogdGhlIGdhcy1mZWUgYW5kIGl0IHNob3VsZCBiZSBtb3JlIHRoYW4gbWluaW11bSByZXF1aXJlZCBnYXMtZmVlIHRvIHByb2Nlc3MgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7RmVlRGF0YX0gZ2FzQnVkZ2V0XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgZ2FzQnVkZ2V0KGdhc0J1ZGdldDogRmVlRGF0YSk6IHRoaXMge1xuICAgIHRoaXMuX3V0aWxzLnZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldCk7XG4gICAgdGhpcy5fZ2FzQnVkZ2V0ID0gZ2FzQnVkZ2V0O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICogQHBhcmFtIHtDb3Ntb3NUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBDb3Ntb3NUcmFuc2FjdGlvbjxDdXN0b21NZXNzYWdlPik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgdGhpcy5nYXNCdWRnZXQodHhEYXRhLmdhc0J1ZGdldCk7XG4gICAgdGhpcy5tZXNzYWdlcyhcbiAgICAgIHR4RGF0YS5zZW5kTWVzc2FnZXMubWFwKChtZXNzYWdlKSA9PiB7XG4gICAgICAgIHJldHVybiBtZXNzYWdlLnZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc2VxdWVuY2UodHhEYXRhLnNlcXVlbmNlKTtcbiAgICB0aGlzLnB1YmxpY0tleSh0eERhdGEucHVibGljS2V5KTtcbiAgICB0aGlzLmFjY291bnROdW1iZXIodHhEYXRhLmFjY291bnROdW1iZXIpO1xuICAgIHRoaXMuY2hhaW5JZCh0eERhdGEuY2hhaW5JZCk7XG4gICAgdGhpcy5tZW1vKHR4RGF0YS5tZW1vKTtcbiAgICBpZiAodHguc2lnbmF0dXJlICYmIHR4LnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFkZFNpZ25hdHVyZSh7IHB1YjogdHhEYXRhLnB1YmxpY0tleSB9IGFzIGFueSwgQnVmZmVyLmZyb20odHguc2lnbmF0dXJlWzBdLCAnaGV4JykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IENvc21vc1RyYW5zYWN0aW9uIGluc3RhbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgbmV3VHJhbnNhY3Rpb24oKTogQ29zbW9zVHJhbnNhY3Rpb248Q3VzdG9tTWVzc2FnZT4ge1xuICAgIHJldHVybiBuZXcgQ29zbW9zVHJhbnNhY3Rpb248Q3VzdG9tTWVzc2FnZT4odGhpcy5fY29pbkNvbmZpZywgdGhpcy5fdXRpbHMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IENvc21vc1RyYW5zYWN0aW9uPEN1c3RvbU1lc3NhZ2U+IHtcbiAgICBjb25zdCB0eCA9IHRoaXMubmV3VHJhbnNhY3Rpb24oKTtcbiAgICB0eC5lbnJpY2hUcmFuc2FjdGlvbkRldGFpbHNGcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8Q29zbW9zVHJhbnNhY3Rpb248Q3VzdG9tTWVzc2FnZT4+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xuICAgIGlmICh0aGlzLl9hY2NvdW50TnVtYmVyKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFjY291bnROdW1iZXIgPSB0aGlzLl9hY2NvdW50TnVtYmVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5fY2hhaW5JZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5jaGFpbklkID0gdGhpcy5fY2hhaW5JZDtcbiAgICB9XG4gICAgdGhpcy50cmFuc2FjdGlvbi5jb3Ntb3NMaWtlVHJhbnNhY3Rpb24gPSB0aGlzLl91dGlscy5jcmVhdGVUcmFuc2FjdGlvbihcbiAgICAgIHRoaXMuX3NlcXVlbmNlLFxuICAgICAgdGhpcy5fbWVzc2FnZXMsXG4gICAgICB0aGlzLl9nYXNCdWRnZXQsXG4gICAgICB0aGlzLl9wdWJsaWNLZXksXG4gICAgICB0aGlzLl9tZW1vXG4gICAgKTtcblxuICAgIGNvbnN0IHByaXZhdGVLZXkgPSB0aGlzLl9zaWduZXI/LmdldFByaXZhdGVLZXkoKTtcbiAgICBpZiAocHJpdmF0ZUtleSAhPT0gdW5kZWZpbmVkICYmIHRoaXMudHJhbnNhY3Rpb24uY29zbW9zTGlrZVRyYW5zYWN0aW9uLnB1YmxpY0tleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBzaWduRG9jID0gdGhpcy5fdXRpbHMuY3JlYXRlU2lnbkRvYyhcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5jb3Ntb3NMaWtlVHJhbnNhY3Rpb24sXG4gICAgICAgIHRoaXMuX2FjY291bnROdW1iZXIsXG4gICAgICAgIHRoaXMuX2NoYWluSWRcbiAgICAgICk7XG4gICAgICBjb25zdCB0eG5IYXNoID0gVWludDhBcnJheS5mcm9tKHRoaXMuX3V0aWxzLmdldEhhc2hGdW5jdGlvbigpLnVwZGF0ZShtYWtlU2lnbkJ5dGVzKHNpZ25Eb2MpKS5kaWdlc3QoKSk7XG4gICAgICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCBTZWNwMjU2azEuY3JlYXRlU2lnbmF0dXJlKHR4bkhhc2gsIHByaXZhdGVLZXkpO1xuICAgICAgY29uc3QgY29tcHJlc3NlZFNpZyA9IEJ1ZmZlci5jb25jYXQoW3NpZ25hdHVyZS5yKCksIHNpZ25hdHVyZS5zKCldKTtcbiAgICAgIHRoaXMuYWRkU2lnbmF0dXJlKHsgcHViOiB0aGlzLnRyYW5zYWN0aW9uLmNvc21vc0xpa2VUcmFuc2FjdGlvbi5wdWJsaWNLZXkgfSwgY29tcHJlc3NlZFNpZyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3NpZ25hdHVyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZSh0aGlzLl9zaWduYXR1cmUudG9TdHJpbmcoJ2hleCcpKTtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uY29zbW9zTGlrZVRyYW5zYWN0aW9uID0gdGhpcy5fdXRpbHMuY3JlYXRlVHJhbnNhY3Rpb25XaXRoSGFzaChcbiAgICAgICAgdGhpcy5fc2VxdWVuY2UsXG4gICAgICAgIHRoaXMuX21lc3NhZ2VzLFxuICAgICAgICB0aGlzLl9nYXNCdWRnZXQsXG4gICAgICAgIHRoaXMuX3B1YmxpY0tleSxcbiAgICAgICAgdGhpcy5fc2lnbmF0dXJlLFxuICAgICAgICB0aGlzLl9tZW1vXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCEodGhpcy5fdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSB8fCB0aGlzLl91dGlscy5pc1ZhbGlkVmFsaWRhdG9yQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb25CdWlsZGVyOiBhZGRyZXNzIGlzVmFsaWRBZGRyZXNzIGNoZWNrIGZhaWxlZDogJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCByYXdUcmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB0cnkge1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246ICcgKyBlLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBjb25zdCBjb3Ntb3NUcmFuc2FjdGlvbiA9IHRoaXMuX3V0aWxzLmRlc2VyaWFsaXplVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuX3V0aWxzLnZhbGlkYXRlVHJhbnNhY3Rpb24oY29zbW9zVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IENvc21vc1RyYW5zYWN0aW9uPEN1c3RvbU1lc3NhZ2U+KTogdm9pZCB7XG4gICAgdGhpcy5fdXRpbHMudmFsaWRhdGVUcmFuc2FjdGlvbih7XG4gICAgICBzZXF1ZW5jZTogdGhpcy5fc2VxdWVuY2UsXG4gICAgICBzZW5kTWVzc2FnZXM6IHRoaXMuX21lc3NhZ2VzLFxuICAgICAgZ2FzQnVkZ2V0OiB0aGlzLl9nYXNCdWRnZXQsXG4gICAgICBwdWJsaWNLZXk6IHRoaXMuX3B1YmxpY0tleSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { SendMessage } from './iface';
|
|
4
|
+
import { CosmosTransactionBuilder } from './transactionBuilder';
|
|
5
|
+
import { CosmosUtils } from './utils';
|
|
6
|
+
export declare class CosmosTransferBuilder<CustomMessage = never> extends CosmosTransactionBuilder<CustomMessage> {
|
|
7
|
+
protected _utils: CosmosUtils<CustomMessage>;
|
|
8
|
+
constructor(_coinConfig: Readonly<CoinConfig>, utils: CosmosUtils<CustomMessage>);
|
|
9
|
+
protected get transactionType(): TransactionType;
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
messages(sendMessages: SendMessage[]): this;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,qBAAqB,CAAC,aAAa,GAAG,KAAK,CAAE,SAAQ,wBAAwB,CAAC,aAAa,CAAC;IACvG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;gBAEjC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC;IAKhF,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI;CAU5C"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CosmosTransferBuilder = void 0;
|
|
37
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
38
|
+
const constants = __importStar(require("./constants"));
|
|
39
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
40
|
+
class CosmosTransferBuilder extends transactionBuilder_1.CosmosTransactionBuilder {
|
|
41
|
+
constructor(_coinConfig, utils) {
|
|
42
|
+
super(_coinConfig, utils);
|
|
43
|
+
this._utils = utils;
|
|
44
|
+
}
|
|
45
|
+
get transactionType() {
|
|
46
|
+
return sdk_core_1.TransactionType.Send;
|
|
47
|
+
}
|
|
48
|
+
/** @inheritdoc */
|
|
49
|
+
messages(sendMessages) {
|
|
50
|
+
this._messages = sendMessages.map((sendMessage) => {
|
|
51
|
+
this._utils.validateSendMessage(sendMessage);
|
|
52
|
+
return {
|
|
53
|
+
typeUrl: constants.sendMsgTypeUrl,
|
|
54
|
+
value: sendMessage,
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.CosmosTransferBuilder = CosmosTransferBuilder;
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQXVEO0FBR3ZELHVEQUF5QztBQUV6Qyw2REFBZ0U7QUFHaEUsTUFBYSxxQkFBNkMsU0FBUSw2Q0FBdUM7SUFHdkcsWUFBWSxXQUFpQyxFQUFFLEtBQWlDO1FBQzlFLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsUUFBUSxDQUFDLFlBQTJCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsT0FBTztnQkFDTCxPQUFPLEVBQUUsU0FBUyxDQUFDLGNBQWM7Z0JBQ2pDLEtBQUssRUFBRSxXQUFXO2FBQ25CLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBdkJELHNEQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNlbmRNZXNzYWdlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBDb3Ntb3NVdGlscyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ29zbW9zVHJhbnNmZXJCdWlsZGVyPEN1c3RvbU1lc3NhZ2UgPSBuZXZlcj4gZXh0ZW5kcyBDb3Ntb3NUcmFuc2FjdGlvbkJ1aWxkZXI8Q3VzdG9tTWVzc2FnZT4ge1xuICBwcm90ZWN0ZWQgX3V0aWxzOiBDb3Ntb3NVdGlsczxDdXN0b21NZXNzYWdlPjtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sIHV0aWxzOiBDb3Ntb3NVdGlsczxDdXN0b21NZXNzYWdlPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnLCB1dGlscyk7XG4gICAgdGhpcy5fdXRpbHMgPSB1dGlscztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIG1lc3NhZ2VzKHNlbmRNZXNzYWdlczogU2VuZE1lc3NhZ2VbXSk6IHRoaXMge1xuICAgIHRoaXMuX21lc3NhZ2VzID0gc2VuZE1lc3NhZ2VzLm1hcCgoc2VuZE1lc3NhZ2UpID0+IHtcbiAgICAgIHRoaXMuX3V0aWxzLnZhbGlkYXRlU2VuZE1lc3NhZ2Uoc2VuZE1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZVVybDogY29uc3RhbnRzLnNlbmRNc2dUeXBlVXJsLFxuICAgICAgICB2YWx1ZTogc2VuZE1lc3NhZ2UsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { BaseUtils, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { DecodedTxRaw } from '@cosmjs/proto-signing';
|
|
3
|
+
import { Coin } from '@cosmjs/stargate';
|
|
3
4
|
import { SignDoc, TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import { Any } from 'cosmjs-types/google/protobuf/any';
|
|
6
|
+
import { Hash } from 'crypto';
|
|
7
|
+
import { CosmosLikeTransaction, DelegateOrUndelegeteMessage, ExecuteContractMessage, FeeData, MessageData, RedelegateMessage, SendMessage, WithdrawDelegatorRewardsMessage } from './iface';
|
|
8
|
+
export declare class CosmosUtils<CustomMessage = never> implements BaseUtils {
|
|
9
|
+
protected registry: any;
|
|
10
|
+
constructor();
|
|
7
11
|
/** @inheritdoc */
|
|
8
12
|
isValidBlockId(hash: string): boolean;
|
|
9
13
|
/** @inheritdoc */
|
|
@@ -43,6 +47,10 @@ export declare class CosmosLikeUtils implements BaseUtils {
|
|
|
43
47
|
* @returns {EncodeObject[]} messages along with type url
|
|
44
48
|
*/
|
|
45
49
|
private getEncodedMessagesFromDecodedTx;
|
|
50
|
+
/**
|
|
51
|
+
* Checks the txn sequence is valid or not
|
|
52
|
+
* @param {number} sequence
|
|
53
|
+
*/
|
|
46
54
|
validateSequence(sequence: number): void;
|
|
47
55
|
/**
|
|
48
56
|
* Pulls the sequence number from a DecodedTxRaw AuthInfo property
|
|
@@ -53,7 +61,7 @@ export declare class CosmosLikeUtils implements BaseUtils {
|
|
|
53
61
|
/**
|
|
54
62
|
* Pulls the typeUrl from the encoded message of a DecodedTxRaw
|
|
55
63
|
* @param {DecodedTxRaw} decodedTx
|
|
56
|
-
* @returns {string}
|
|
64
|
+
* @returns {string} cosmos proto type url
|
|
57
65
|
*/
|
|
58
66
|
getTypeUrlFromDecodedTx(decodedTx: DecodedTxRaw): string;
|
|
59
67
|
/**
|
|
@@ -73,38 +81,83 @@ export declare class CosmosLikeUtils implements BaseUtils {
|
|
|
73
81
|
* @param {DecodedTxRaw} decodedTx
|
|
74
82
|
* @returns {MessageData[]} Send transaction message data
|
|
75
83
|
*/
|
|
76
|
-
protected getSendMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
|
|
84
|
+
protected getSendMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<CustomMessage>[];
|
|
77
85
|
/**
|
|
78
86
|
* Returns the array of MessageData[] from the decoded transaction
|
|
79
87
|
* @param {DecodedTxRaw} decodedTx
|
|
80
88
|
* @returns {MessageData[]} Delegate of undelegate transaction message data
|
|
81
89
|
*/
|
|
82
|
-
getDelegateOrUndelegateMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
|
|
90
|
+
getDelegateOrUndelegateMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<CustomMessage>[];
|
|
91
|
+
/**
|
|
92
|
+
* Returns the array of MessageData[] from the decoded transaction
|
|
93
|
+
* @param {DecodedTxRaw} decodedTx
|
|
94
|
+
* @returns {MessageData[]} Redelegate transaction message data
|
|
95
|
+
*/
|
|
96
|
+
getRedelegateMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<CustomMessage>[];
|
|
83
97
|
/**
|
|
84
98
|
* Returns the array of MessageData[] from the decoded transaction
|
|
85
99
|
* @param {DecodedTxRaw} decodedTx
|
|
86
100
|
* @returns {MessageData[]} WithdrawDelegatorRewards transaction message data
|
|
87
101
|
*/
|
|
88
|
-
getWithdrawRewardsMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
|
|
102
|
+
getWithdrawRewardsMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<CustomMessage>[];
|
|
89
103
|
/**
|
|
90
104
|
* Returns the array of MessageData[] from the decoded transaction
|
|
91
105
|
* @param {DecodedTxRaw} decodedTx
|
|
92
106
|
* @returns {MessageData[]} Delegate of undelegate transaction message data
|
|
93
107
|
*/
|
|
94
|
-
getWithdrawDelegatorRewardsMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
|
|
108
|
+
getWithdrawDelegatorRewardsMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<CustomMessage>[];
|
|
109
|
+
/**
|
|
110
|
+
* Get a cosmos chain address from its equivalent hex
|
|
111
|
+
* @param {string} prefix
|
|
112
|
+
* @param {string} addressHex
|
|
113
|
+
* @returns {string}
|
|
114
|
+
*/
|
|
115
|
+
getCosmosLikeAddressFromHex(prefix: string, addressHex: string): string;
|
|
116
|
+
/**
|
|
117
|
+
* Get a EVM chain address from its equivalent hex
|
|
118
|
+
* @param {string} prefix
|
|
119
|
+
* @param {string} addressHex
|
|
120
|
+
* @returns {string}
|
|
121
|
+
*/
|
|
122
|
+
getEvmLikeAddressFromCosmos(cosmosLikeAddress: string): string;
|
|
123
|
+
/**
|
|
124
|
+
* Returns the array of MessageData[] from the decoded transaction
|
|
125
|
+
* @param {DecodedTxRaw} decodedTx
|
|
126
|
+
* @returns {MessageData[]} Execute contract transaction message data
|
|
127
|
+
*/
|
|
128
|
+
getExecuteContractMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<CustomMessage>[];
|
|
95
129
|
/**
|
|
96
|
-
*
|
|
130
|
+
* Returns the array of MessageData[] from the decoded transaction
|
|
131
|
+
* @param {DecodedTxRaw} decodedTx
|
|
132
|
+
* @returns {MessageData[]} Custom transaction message data
|
|
133
|
+
*/
|
|
134
|
+
getCustomMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData<CustomMessage>[];
|
|
135
|
+
/**
|
|
136
|
+
* Determines bitgo transaction type based on cosmos proto type url
|
|
97
137
|
* @param {string} typeUrl
|
|
98
138
|
* @returns {TransactionType | undefined} TransactionType if url is supported else undefined
|
|
99
139
|
*/
|
|
100
140
|
getTransactionTypeFromTypeUrl(typeUrl: string): TransactionType | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* Takes a hex encoded pubkey, converts it to the Amino JSON representation (type/value wrapper)
|
|
143
|
+
* and returns it as protobuf `Any`
|
|
144
|
+
* @param {string} pubkey hex encoded compressed secp256k1 public key
|
|
145
|
+
* @returns {Any} pubkey encoded as protobuf `Any`
|
|
146
|
+
*/
|
|
147
|
+
getEncodedPubkey(pubkey: string): Any;
|
|
148
|
+
/**
|
|
149
|
+
* Gets the send messages used in the final step of encoding a transaction. This allows for any final processing needed.
|
|
150
|
+
* @param {CosmosLikeTransaction} cosmosLikeTransaction transaction to get send messages from
|
|
151
|
+
* @returns {Any[]} processed send messages
|
|
152
|
+
*/
|
|
153
|
+
getSendMessagesForEncodingTx(cosmosLikeTransaction: CosmosLikeTransaction<CustomMessage>): Any[];
|
|
101
154
|
/**
|
|
102
155
|
* Creates a txRaw from an cosmos like transaction @see CosmosLikeTransaction
|
|
103
156
|
* @Precondition cosmosLikeTransaction.publicKey must be defined
|
|
104
157
|
* @param {CosmosLikeTransaction} cosmosLikeTransaction
|
|
105
158
|
* @returns {TxRaw} Unsigned raw transaction
|
|
106
159
|
*/
|
|
107
|
-
createTxRawFromCosmosLikeTransaction(cosmosLikeTransaction: CosmosLikeTransaction): TxRaw;
|
|
160
|
+
createTxRawFromCosmosLikeTransaction(cosmosLikeTransaction: CosmosLikeTransaction<CustomMessage>): TxRaw;
|
|
108
161
|
/**
|
|
109
162
|
* Encodes a signature into a txRaw
|
|
110
163
|
* @param {string} publicKeyHex publicKey in hex encoded string format
|
|
@@ -122,23 +175,177 @@ export declare class CosmosLikeUtils implements BaseUtils {
|
|
|
122
175
|
* @returns {boolean} true if transaction is signed else false
|
|
123
176
|
*/
|
|
124
177
|
isSignedRawTx(rawTransaction: string): boolean;
|
|
125
|
-
validatePublicKey(publicKey: string | undefined): void;
|
|
126
178
|
/**
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
* @param {string} address
|
|
130
|
-
* @returns {boolean} - the validation result
|
|
179
|
+
* Returns whether or not the string is a valid protocol public key
|
|
180
|
+
* @param {string | undefined} publicKey - the public key to be validated
|
|
131
181
|
*/
|
|
132
|
-
|
|
182
|
+
validatePublicKey(publicKey: string | undefined): void;
|
|
133
183
|
/**
|
|
134
184
|
* Creates a sign doc from an cosmos like transaction @see CosmosLikeTransaction
|
|
135
185
|
* @Precondition cosmosLikeTransaction.accountNumber and cosmosLikeTransaction.chainId must be defined
|
|
136
186
|
* @param {CosmosLikeTransaction} cosmosLikeTransaction
|
|
137
187
|
* @returns {SignDoc} sign doc
|
|
138
188
|
*/
|
|
139
|
-
createSignDoc(cosmosLikeTransaction: CosmosLikeTransaction
|
|
189
|
+
createSignDoc(cosmosLikeTransaction: CosmosLikeTransaction<CustomMessage>, accountNumber: number | undefined, chainId: string | undefined): SignDoc;
|
|
190
|
+
/**
|
|
191
|
+
* Returns whether or not the string is a valid hex
|
|
192
|
+
* @param hexString - hex string format
|
|
193
|
+
* @returns {boolean} true if string is hex else false
|
|
194
|
+
*/
|
|
140
195
|
isValidHexString(hexString: string): boolean;
|
|
196
|
+
/**
|
|
197
|
+
* Validates the WithdrawDelegatorRewardsMessage
|
|
198
|
+
* @param {WithdrawDelegatorRewardsMessage} withdrawRewardsMessage - The WithdrawDelegatorRewardsMessage to validate.
|
|
199
|
+
* @throws {InvalidTransactionError} Throws an error if the validatorAddress or delegatorAddress is invalid or missing.
|
|
200
|
+
*/
|
|
201
|
+
validateWithdrawRewardsMessage(withdrawRewardsMessage: WithdrawDelegatorRewardsMessage): void;
|
|
202
|
+
/**
|
|
203
|
+
* Helper method to check if the specified properties in an object are missing or null.
|
|
204
|
+
* @param {Object} obj - The object to check.
|
|
205
|
+
* @param {string[]} keys - An array of property keys to check.
|
|
206
|
+
* @throws {Error} Throws an error if any of the specified properties are missing or null.
|
|
207
|
+
*/
|
|
208
|
+
isObjPropertyNull(obj: {
|
|
209
|
+
[key: string]: any;
|
|
210
|
+
}, keys: Array<string>): void;
|
|
211
|
+
/**
|
|
212
|
+
* Validates the DelegateOrUndelegeteMessage
|
|
213
|
+
* @param {DelegateOrUndelegeteMessage} delegateMessage - The DelegateOrUndelegeteMessage to validate.
|
|
214
|
+
* @throws {InvalidTransactionError} Throws an error if the validatorAddress, delegatorAddress, or amount is invalid or missing.
|
|
215
|
+
*/
|
|
216
|
+
validateDelegateOrUndelegateMessage(delegateMessage: DelegateOrUndelegeteMessage): void;
|
|
217
|
+
/**
|
|
218
|
+
* Validates the RedelegateMessage
|
|
219
|
+
* @param {DelegateOrUndelegeteMessage} redelegateMessage - The RedelegateMessage to validate.
|
|
220
|
+
* @throws {InvalidTransactionError} Throws an error if the validatorSrcAddress, validatorDstAddress, delegatorAddress, or amount is invalid or missing.
|
|
221
|
+
*/
|
|
222
|
+
validateRedelegateMessage(redelegateMessage: RedelegateMessage): void;
|
|
223
|
+
/**
|
|
224
|
+
* Validates the CustomMessage
|
|
225
|
+
* @param {CustomMessage} customMessage - The CustomMessage to validate.
|
|
226
|
+
* @throws {InvalidTransactionError} Throws an error if the custom message is invalid or missing required fields.
|
|
227
|
+
* @throws {NotSupported} Throws an error if the custom message data is not supported.
|
|
228
|
+
*/
|
|
229
|
+
validateCustomMessage(customMessage: CustomMessage): void;
|
|
230
|
+
/**
|
|
231
|
+
* Validates the MessageData
|
|
232
|
+
* @param {MessageData} messageData - The MessageData to validate.
|
|
233
|
+
* @throws {InvalidTransactionError} Throws an error if the messageData is invalid or missing required fields.
|
|
234
|
+
*/
|
|
235
|
+
validateMessageData(messageData: MessageData<CustomMessage>): void;
|
|
236
|
+
/**
|
|
237
|
+
* Validates the Cosmos-like transaction.
|
|
238
|
+
* @param {CosmosLikeTransaction} tx - The transaction to validate.
|
|
239
|
+
* @throws {InvalidTransactionError} Throws an error if the transaction is invalid or missing required fields.
|
|
240
|
+
*/
|
|
241
|
+
validateTransaction(tx: CosmosLikeTransaction<CustomMessage>): void;
|
|
242
|
+
/**
|
|
243
|
+
* Creates a Cosmos-like transaction.
|
|
244
|
+
* @param {number} sequence - The sender address sequence number for the transaction.
|
|
245
|
+
* @param {MessageData[]} messages - The array of message data for the transaction.
|
|
246
|
+
* @param {FeeData} gasBudget - The fee data for the transaction.
|
|
247
|
+
* @param {string} [publicKey] - The public key associated with the sender.
|
|
248
|
+
* @param {string} [memo] - The memo for the transaction.
|
|
249
|
+
* @returns {CosmosLikeTransaction} Returns the created Cosmos-like transaction.
|
|
250
|
+
* @throws {InvalidTransactionError} Throws an error if the created transaction is invalid.
|
|
251
|
+
*/
|
|
252
|
+
createTransaction(sequence: number, messages: MessageData<CustomMessage>[], gasBudget: FeeData, publicKey?: string, memo?: string): CosmosLikeTransaction<CustomMessage>;
|
|
253
|
+
/**
|
|
254
|
+
* Creates a Cosmos-like transaction with a hash.
|
|
255
|
+
* @param {number} sequence - The sender address sequence number for the transaction.
|
|
256
|
+
* @param {MessageData[]} messages - The array of message data for the transaction.
|
|
257
|
+
* @param {FeeData} gasBudget - The fee data for the transaction.
|
|
258
|
+
* @param {string} [publicKey] - The public key associated with the transaction.
|
|
259
|
+
* @param {Buffer} [signature] - The signature for the transaction.
|
|
260
|
+
* @param {string} [memo] - The memo for the transaction.
|
|
261
|
+
* @returns {CosmosLikeTransaction} Returns the created Cosmos-like transaction with the hash and signature if provided.
|
|
262
|
+
*/
|
|
263
|
+
createTransactionWithHash(sequence: number, messages: MessageData<CustomMessage>[], gasBudget: FeeData, publicKey?: string, signature?: Buffer, memo?: string): CosmosLikeTransaction<CustomMessage>;
|
|
264
|
+
/**
|
|
265
|
+
* Deserializes base64 enocded raw transaction string into @see CosmosLikeTransaction
|
|
266
|
+
* @param {string} rawTx base64 enocded raw transaction string
|
|
267
|
+
* @returns {CosmosLikeTransaction} Deserialized cosmosLikeTransaction
|
|
268
|
+
*/
|
|
269
|
+
deserializeTransaction(rawTx: string): CosmosLikeTransaction<CustomMessage>;
|
|
270
|
+
/**
|
|
271
|
+
* Validates an array of coin amounts.
|
|
272
|
+
* @param {Coin[]} amountArray - The array of coin amounts to validate.
|
|
273
|
+
* @param {TransactionType} transactionType - optional field for transaction type
|
|
274
|
+
*/
|
|
275
|
+
validateAmountData(amountArray: Coin[], transactionType?: TransactionType): void;
|
|
276
|
+
/**
|
|
277
|
+
* Validates the gas limit and gas amount for a transaction.
|
|
278
|
+
* @param {FeeData} gasBudget - The gas budget to validate.
|
|
279
|
+
* @throws {InvalidTransactionError} Throws an error if the gas budget is invalid.
|
|
280
|
+
*/
|
|
281
|
+
validateGasBudget(gasBudget: FeeData): void;
|
|
282
|
+
/**
|
|
283
|
+
* Validates a send message for a transaction.
|
|
284
|
+
* @param {SendMessage} sendMessage - The send message to validate.
|
|
285
|
+
* @throws {InvalidTransactionError} Throws an error if the send message is invalid.
|
|
286
|
+
*/
|
|
287
|
+
validateSendMessage(sendMessage: SendMessage): void;
|
|
288
|
+
/**
|
|
289
|
+
* Validates a coin amount.
|
|
290
|
+
* @param {Coin} amount - The coin amount to validate.
|
|
291
|
+
* @param {TransactionType} transactionType - optional field for transaction type
|
|
292
|
+
* @throws {InvalidTransactionError} Throws an error if the coin amount is invalid.
|
|
293
|
+
*/
|
|
294
|
+
validateAmount(amount: Coin, transactionType?: TransactionType): void;
|
|
295
|
+
/**
|
|
296
|
+
* Checks if a cosmos like Bech32 address matches given regular expression and
|
|
297
|
+
* validates memoId if present
|
|
298
|
+
* @param {string} address
|
|
299
|
+
* @param {RegExp} regExp Regular expression to validate the root address against after trimming the memoId
|
|
300
|
+
* @returns {boolean} true if address is valid
|
|
301
|
+
*/
|
|
302
|
+
protected isValidCosmosLikeAddressWithMemoId(address: string, regExp: RegExp): boolean;
|
|
303
|
+
/**
|
|
304
|
+
* Checks if address is valid Bech32 and matches given regular expression
|
|
305
|
+
* @param {string} address
|
|
306
|
+
* @param {RegExp} regExp Regular expression to validate the address against
|
|
307
|
+
* @returns {boolean} true if address is valid
|
|
308
|
+
*/
|
|
309
|
+
protected isValidBech32AddressMatchingRegex(address: string, regExp: RegExp): boolean;
|
|
310
|
+
/**
|
|
311
|
+
* Return boolean indicating whether a memo id is valid
|
|
312
|
+
*
|
|
313
|
+
* @param memoId memo id
|
|
314
|
+
* @returns true if memo id is valid
|
|
315
|
+
*/
|
|
316
|
+
isValidMemoId(memoId: string): boolean;
|
|
317
|
+
/**
|
|
318
|
+
* Validates if the address matches with regex @see accountAddressRegex
|
|
319
|
+
* @param {string} address
|
|
320
|
+
* @returns {boolean} - the validation result
|
|
321
|
+
*/
|
|
322
|
+
isValidValidatorAddress(address: string): boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Validates if the address matches with regex @see accountAddressRegex
|
|
325
|
+
* @param {string} address
|
|
326
|
+
* @returns {boolean} - the validation result
|
|
327
|
+
*/
|
|
328
|
+
isValidAddress(address: string): boolean;
|
|
329
|
+
/**
|
|
330
|
+
* Validates if the address matches with regex @see contractAddressRegex
|
|
331
|
+
* @param {string} address
|
|
332
|
+
* @returns {boolean} - the validation result
|
|
333
|
+
*/
|
|
334
|
+
isValidContractAddress(address: string): boolean;
|
|
335
|
+
/**
|
|
336
|
+
* Validates a execute contract message
|
|
337
|
+
* @param {ExecuteContractMessage} message - The execute contract message to validate
|
|
338
|
+
* @param {TransactionType} transactionType - optional field for transaction type
|
|
339
|
+
* @throws {InvalidTransactionError} Throws an error if the message is invalid
|
|
340
|
+
*/
|
|
341
|
+
validateExecuteContractMessage(message: ExecuteContractMessage, transactionType?: TransactionType): void;
|
|
342
|
+
/**
|
|
343
|
+
* Get coin specific hash function
|
|
344
|
+
* @returns {Hash} The hash function
|
|
345
|
+
*/
|
|
346
|
+
getHashFunction(): Hash;
|
|
347
|
+
getTokenDenomsUsingCoinFamily(coinFamily: string): string[];
|
|
141
348
|
}
|
|
142
|
-
declare const utils:
|
|
349
|
+
declare const utils: CosmosUtils<never>;
|
|
143
350
|
export default utils;
|
|
144
351
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|