@dydxprotocol/v4-client-js 2.8.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -2
- package/__tests__/modules/client/Transfers.test.ts +1 -1
- package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +1 -1
- package/build/cjs/__tests__/modules/client/Transfers.test.js +2 -2
- package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +2 -2
- package/build/cjs/examples/batch_cancel_orders_example.js +2 -2
- package/build/cjs/examples/composite_example.js +2 -2
- package/build/cjs/examples/long_term_order_cancel_example.js +2 -2
- package/build/cjs/examples/noble_example.js +3 -2
- package/build/cjs/examples/permissioned_keys_example.js +5 -8
- package/build/cjs/examples/short_term_order_cancel_example.js +2 -2
- package/build/cjs/examples/short_term_order_composite_example.js +2 -2
- package/build/cjs/examples/test.js +2 -2
- package/build/cjs/examples/transfer_example_deposit.js +2 -2
- package/build/cjs/examples/transfer_example_send.js +3 -3
- package/build/cjs/examples/transfer_example_subaccount_transfer.js +2 -2
- package/build/cjs/examples/transfer_example_withdraw.js +2 -2
- package/build/cjs/examples/transfer_example_withdraw_other.js +3 -3
- package/build/cjs/examples/validator_post_example.js +2 -2
- package/build/cjs/src/clients/composite-client.js +22 -27
- package/build/cjs/src/clients/modules/post.js +32 -32
- package/build/cjs/src/clients/native.js +23 -22
- package/build/cjs/src/clients/subaccount.js +19 -10
- package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/build/esm/__tests__/modules/client/Transfers.test.js +2 -2
- package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +2 -2
- package/build/esm/examples/batch_cancel_orders_example.js +2 -2
- package/build/esm/examples/composite_example.js +2 -2
- package/build/esm/examples/long_term_order_cancel_example.js +2 -2
- package/build/esm/examples/noble_example.js +3 -2
- package/build/esm/examples/permissioned_keys_example.js +5 -8
- package/build/esm/examples/short_term_order_cancel_example.js +2 -2
- package/build/esm/examples/short_term_order_composite_example.js +2 -2
- package/build/esm/examples/test.js +2 -2
- package/build/esm/examples/transfer_example_deposit.js +2 -2
- package/build/esm/examples/transfer_example_send.js +3 -3
- package/build/esm/examples/transfer_example_subaccount_transfer.js +2 -2
- package/build/esm/examples/transfer_example_withdraw.js +2 -2
- package/build/esm/examples/transfer_example_withdraw_other.js +3 -3
- package/build/esm/examples/validator_post_example.js +2 -2
- package/build/esm/src/clients/composite-client.d.ts +4 -8
- package/build/esm/src/clients/composite-client.d.ts.map +1 -1
- package/build/esm/src/clients/composite-client.js +22 -27
- package/build/esm/src/clients/modules/post.d.ts +3 -4
- package/build/esm/src/clients/modules/post.d.ts.map +1 -1
- package/build/esm/src/clients/modules/post.js +32 -32
- package/build/esm/src/clients/native.d.ts.map +1 -1
- package/build/esm/src/clients/native.js +23 -22
- package/build/esm/src/clients/subaccount.d.ts +9 -3
- package/build/esm/src/clients/subaccount.d.ts.map +1 -1
- package/build/esm/src/clients/subaccount.js +19 -10
- package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/examples/batch_cancel_orders_example.ts +3 -3
- package/examples/composite_example.ts +1 -1
- package/examples/long_term_order_cancel_example.ts +1 -1
- package/examples/noble_example.ts +2 -1
- package/examples/permissioned_keys_example.ts +9 -8
- package/examples/short_term_order_cancel_example.ts +1 -1
- package/examples/short_term_order_composite_example.ts +1 -1
- package/examples/test.ts +1 -1
- package/examples/transfer_example_deposit.ts +1 -1
- package/examples/transfer_example_send.ts +2 -2
- package/examples/transfer_example_subaccount_transfer.ts +1 -1
- package/examples/transfer_example_withdraw.ts +1 -1
- package/examples/transfer_example_withdraw_other.ts +2 -2
- package/examples/validator_post_example.ts +1 -1
- package/package.json +1 -1
- package/src/clients/composite-client.ts +21 -42
- package/src/clients/modules/post.ts +37 -37
- package/src/clients/native.ts +39 -39
- package/src/clients/subaccount.ts +42 -10
|
@@ -69,7 +69,7 @@ class Post {
|
|
|
69
69
|
* at any point.
|
|
70
70
|
* @returns The Fee for broadcasting a transaction.
|
|
71
71
|
*/
|
|
72
|
-
async simulate(
|
|
72
|
+
async simulate(subaccount, messaging, gasPrice = this.getGasPrice(), memo, account) {
|
|
73
73
|
let msgs;
|
|
74
74
|
// protocol expects timestamp nonce in UTC milliseconds, which is the unit returned by Date.now()
|
|
75
75
|
let sequence = Date.now() + this.timestampNonceOffsetMs;
|
|
@@ -78,12 +78,12 @@ class Post {
|
|
|
78
78
|
}
|
|
79
79
|
else {
|
|
80
80
|
const msgsPromise = messaging();
|
|
81
|
-
const accountPromise = account ? await account() : this.account(
|
|
81
|
+
const accountPromise = account ? await account() : this.account(subaccount.address);
|
|
82
82
|
const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]);
|
|
83
83
|
msgs = msgsAndAccount[0];
|
|
84
84
|
sequence = msgsAndAccount[1].sequence;
|
|
85
85
|
}
|
|
86
|
-
return this.simulateTransaction(
|
|
86
|
+
return this.simulateTransaction(subaccount.signingWallet.pubKey, sequence, msgs, gasPrice, memo);
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* @description Sign a transaction
|
|
@@ -93,12 +93,12 @@ class Post {
|
|
|
93
93
|
* at any point.
|
|
94
94
|
* @returns The Signature.
|
|
95
95
|
*/
|
|
96
|
-
async sign(
|
|
96
|
+
async sign(subaccount, messaging, zeroFee, gasPrice = this.getGasPrice(), memo, account) {
|
|
97
97
|
const msgsPromise = await messaging();
|
|
98
|
-
const accountPromise = account ? await account() : this.account(
|
|
98
|
+
const accountPromise = account ? await account() : this.account(subaccount.address);
|
|
99
99
|
const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]);
|
|
100
100
|
const msgs = msgsAndAccount[0];
|
|
101
|
-
return this.signTransaction(
|
|
101
|
+
return this.signTransaction(subaccount, msgs, msgsAndAccount[1], zeroFee, gasPrice, memo);
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* @description Send a transaction
|
|
@@ -108,12 +108,12 @@ class Post {
|
|
|
108
108
|
* at any point.
|
|
109
109
|
* @returns The Tx Hash.
|
|
110
110
|
*/
|
|
111
|
-
async send(
|
|
111
|
+
async send(subaccount, messaging, zeroFee, gasPrice = this.getGasPrice(), memo, broadcastMode, account, gasAdjustment = constants_1.GAS_MULTIPLIER) {
|
|
112
112
|
const msgsPromise = messaging();
|
|
113
|
-
const accountPromise = account ? await account() : this.account(
|
|
113
|
+
const accountPromise = account ? await account() : this.account(subaccount.address);
|
|
114
114
|
const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]);
|
|
115
115
|
const msgs = msgsAndAccount[0];
|
|
116
|
-
return this.signAndSendTransaction(
|
|
116
|
+
return this.signAndSendTransaction(subaccount, msgsAndAccount[1], msgs, zeroFee, gasPrice, memo !== null && memo !== void 0 ? memo : this.defaultClientMemo, broadcastMode !== null && broadcastMode !== void 0 ? broadcastMode : this.defaultBroadcastMode(msgs), gasAdjustment);
|
|
117
117
|
}
|
|
118
118
|
/**
|
|
119
119
|
* @description Calculate the default broadcast mode.
|
|
@@ -143,7 +143,7 @@ class Post {
|
|
|
143
143
|
*
|
|
144
144
|
* @returns The Tx Response.
|
|
145
145
|
*/
|
|
146
|
-
async signTransaction(
|
|
146
|
+
async signTransaction(subaccount, messages, account, zeroFee, gasPrice = this.getGasPrice(), memo, gasAdjustment = constants_1.GAS_MULTIPLIER) {
|
|
147
147
|
// protocol expects timestamp nonce in UTC milliseconds, which is the unit returned by Date.now()
|
|
148
148
|
const sequence = this.useTimestampNonce
|
|
149
149
|
? Date.now() + this.timestampNonceOffsetMs
|
|
@@ -154,15 +154,15 @@ class Post {
|
|
|
154
154
|
amount: [],
|
|
155
155
|
gas: '1000000',
|
|
156
156
|
}
|
|
157
|
-
: await this.simulateTransaction(
|
|
157
|
+
: await this.simulateTransaction(subaccount.signingWallet.pubKey, sequence, messages, gasPrice, memo, gasAdjustment);
|
|
158
158
|
const txOptions = {
|
|
159
159
|
sequence,
|
|
160
160
|
accountNumber: account.accountNumber,
|
|
161
161
|
chainId: this.chainId,
|
|
162
|
-
authenticators,
|
|
162
|
+
authenticators: subaccount.authenticators,
|
|
163
163
|
};
|
|
164
164
|
// Generate signed transaction.
|
|
165
|
-
return
|
|
165
|
+
return subaccount.signingWallet.signTransaction(messages, txOptions, fee, memo);
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
168
168
|
* @description Retrieve an account structure for transactions.
|
|
@@ -186,8 +186,8 @@ class Post {
|
|
|
186
186
|
*
|
|
187
187
|
* @returns The Tx Response.
|
|
188
188
|
*/
|
|
189
|
-
async signAndSendTransaction(
|
|
190
|
-
const signedTransaction = await this.signTransaction(
|
|
189
|
+
async signAndSendTransaction(subaccount, account, messages, zeroFee, gasPrice = this.getGasPrice(), memo, broadcastMode, gasAdjustment = constants_1.GAS_MULTIPLIER) {
|
|
190
|
+
const signedTransaction = await this.signTransaction(subaccount, messages, account, zeroFee, gasPrice, memo, gasAdjustment);
|
|
191
191
|
return this.sendSignedTransaction(signedTransaction, broadcastMode);
|
|
192
192
|
}
|
|
193
193
|
/**
|
|
@@ -238,7 +238,7 @@ class Post {
|
|
|
238
238
|
async placeOrder(subaccount, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata = 0, conditionType = proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, conditionalOrderTriggerSubticks = long_1.default.fromInt(0), twapParameters, builderCodeParameters, orderRouterAddress, broadcastMode) {
|
|
239
239
|
const msg = await this.placeOrderMsg(subaccount.address, subaccount.subaccountNumber, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata, conditionType, conditionalOrderTriggerSubticks, twapParameters, builderCodeParameters, orderRouterAddress);
|
|
240
240
|
const account = this.account(subaccount.address, orderFlags);
|
|
241
|
-
return this.send(subaccount
|
|
241
|
+
return this.send(subaccount, () => Promise.resolve([msg]), true, undefined, undefined, broadcastMode, () => account);
|
|
242
242
|
}
|
|
243
243
|
async placeOrderMsg(address, subaccountNumber, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata = 0, conditionType = proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, conditionalOrderTriggerSubticks = long_1.default.fromInt(0), twapParameters, builderCodeParameters, orderRouterAddress) {
|
|
244
244
|
return new Promise((resolve) => {
|
|
@@ -252,7 +252,7 @@ class Post {
|
|
|
252
252
|
}
|
|
253
253
|
async cancelOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime, broadcastMode) {
|
|
254
254
|
const msg = await this.cancelOrderMsg(subaccount.address, subaccount.subaccountNumber, clientId, orderFlags, clobPairId, goodTilBlock !== null && goodTilBlock !== void 0 ? goodTilBlock : 0, goodTilBlockTime !== null && goodTilBlockTime !== void 0 ? goodTilBlockTime : 0);
|
|
255
|
-
return this.send(subaccount
|
|
255
|
+
return this.send(subaccount, () => Promise.resolve([msg]), true, undefined, undefined, broadcastMode);
|
|
256
256
|
}
|
|
257
257
|
async cancelOrderMsg(address, subaccountNumber, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime) {
|
|
258
258
|
return new Promise((resolve) => {
|
|
@@ -265,7 +265,7 @@ class Post {
|
|
|
265
265
|
}
|
|
266
266
|
async batchCancelShortTermOrders(subaccount, shortTermOrders, goodTilBlock, broadcastMode) {
|
|
267
267
|
const msg = await this.batchCancelShortTermOrdersMsg(subaccount.address, subaccount.subaccountNumber, shortTermOrders, goodTilBlock);
|
|
268
|
-
return this.send(subaccount
|
|
268
|
+
return this.send(subaccount, () => Promise.resolve([msg]), true, undefined, undefined, broadcastMode);
|
|
269
269
|
}
|
|
270
270
|
async batchCancelShortTermOrdersMsg(address, subaccountNumber, shortTermOrders, goodTilBlock) {
|
|
271
271
|
return new Promise((resolve) => {
|
|
@@ -275,7 +275,7 @@ class Post {
|
|
|
275
275
|
}
|
|
276
276
|
async transfer(subaccount, recipientAddress, recipientSubaccountNumber, assetId, amount, broadcastMode) {
|
|
277
277
|
const msg = await this.transferMsg(subaccount.address, subaccount.subaccountNumber, recipientAddress, recipientSubaccountNumber, assetId, amount);
|
|
278
|
-
return this.send(subaccount
|
|
278
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, broadcastMode);
|
|
279
279
|
}
|
|
280
280
|
async transferMsg(address, subaccountNumber, recipientAddress, recipientSubaccountNumber, assetId, amount) {
|
|
281
281
|
return new Promise((resolve) => {
|
|
@@ -285,7 +285,7 @@ class Post {
|
|
|
285
285
|
}
|
|
286
286
|
async deposit(subaccount, assetId, quantums, broadcastMode) {
|
|
287
287
|
const msg = await this.depositMsg(subaccount.address, subaccount.subaccountNumber, assetId, quantums);
|
|
288
|
-
return this.send(subaccount
|
|
288
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, broadcastMode);
|
|
289
289
|
}
|
|
290
290
|
async depositMsg(address, subaccountNumber, assetId, quantums) {
|
|
291
291
|
return new Promise((resolve) => {
|
|
@@ -295,7 +295,7 @@ class Post {
|
|
|
295
295
|
}
|
|
296
296
|
async withdraw(subaccount, assetId, quantums, recipient, broadcastMode) {
|
|
297
297
|
const msg = await this.withdrawMsg(subaccount.address, subaccount.subaccountNumber, assetId, quantums, recipient);
|
|
298
|
-
return this.send(subaccount
|
|
298
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, broadcastMode);
|
|
299
299
|
}
|
|
300
300
|
async withdrawMsg(address, subaccountNumber, assetId, quantums, recipient) {
|
|
301
301
|
return new Promise((resolve) => {
|
|
@@ -305,7 +305,7 @@ class Post {
|
|
|
305
305
|
}
|
|
306
306
|
async sendToken(subaccount, recipient, coinDenom, quantums, zeroFee = true, broadcastMode) {
|
|
307
307
|
const msg = await this.sendTokenMsg(subaccount.address, recipient, coinDenom, quantums);
|
|
308
|
-
return this.send(subaccount
|
|
308
|
+
return this.send(subaccount, () => Promise.resolve([msg]), zeroFee, coinDenom === this.denoms.CHAINTOKEN_DENOM ? this.defaultDydxGasPrice : this.defaultGasPrice, undefined, broadcastMode);
|
|
309
309
|
}
|
|
310
310
|
async sendTokenMsg(address, recipient, coinDenom, quantums) {
|
|
311
311
|
if (coinDenom !== this.denoms.CHAINTOKEN_DENOM && coinDenom !== this.denoms.USDC_DENOM) {
|
|
@@ -321,7 +321,7 @@ class Post {
|
|
|
321
321
|
denom: this.denoms.CHAINTOKEN_DENOM,
|
|
322
322
|
amount,
|
|
323
323
|
});
|
|
324
|
-
return this.send(subaccount
|
|
324
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, this.defaultDydxGasPrice, undefined, broadcastMode);
|
|
325
325
|
}
|
|
326
326
|
delegateMsg(delegator, validator, amount) {
|
|
327
327
|
return this.composer.composeMsgDelegate(delegator, validator, {
|
|
@@ -334,7 +334,7 @@ class Post {
|
|
|
334
334
|
denom: this.denoms.CHAINTOKEN_DENOM,
|
|
335
335
|
amount,
|
|
336
336
|
});
|
|
337
|
-
return this.send(subaccount
|
|
337
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, this.defaultDydxGasPrice, undefined, broadcastMode);
|
|
338
338
|
}
|
|
339
339
|
undelegateMsg(delegator, validator, amount) {
|
|
340
340
|
return this.composer.composeMsgUndelegate(delegator, validator, {
|
|
@@ -344,7 +344,7 @@ class Post {
|
|
|
344
344
|
}
|
|
345
345
|
async withdrawDelegatorReward(subaccount, delegator, validator, broadcastMode) {
|
|
346
346
|
const msg = this.composer.composeMsgWithdrawDelegatorReward(delegator, validator);
|
|
347
|
-
return this.send(subaccount
|
|
347
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, this.defaultGasPrice, undefined, broadcastMode);
|
|
348
348
|
}
|
|
349
349
|
withdrawDelegatorRewardMsg(delegator, validator) {
|
|
350
350
|
return this.composer.composeMsgWithdrawDelegatorReward(delegator, validator);
|
|
@@ -352,21 +352,21 @@ class Post {
|
|
|
352
352
|
// vaults
|
|
353
353
|
async depositToMegavault(subaccount, quoteQuantums, broadcastMode) {
|
|
354
354
|
const msg = await this.depositToMegavaultMsg(subaccount.address, subaccount.subaccountNumber, quoteQuantums);
|
|
355
|
-
return this.send(subaccount
|
|
355
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, broadcastMode);
|
|
356
356
|
}
|
|
357
357
|
depositToMegavaultMsg(...args) {
|
|
358
358
|
return this.composer.composeMsgDepositToMegavault(...args);
|
|
359
359
|
}
|
|
360
360
|
async withdrawFromMegavault(subaccount, shares, minQuoteQuantums, broadcastMode) {
|
|
361
361
|
const msg = await this.withdrawFromMegavaultMsg(subaccount.address, subaccount.subaccountNumber, shares, minQuoteQuantums);
|
|
362
|
-
return this.send(subaccount
|
|
362
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, broadcastMode);
|
|
363
363
|
}
|
|
364
364
|
withdrawFromMegavaultMsg(...args) {
|
|
365
365
|
return this.composer.composeMsgWithdrawFromMegavault(...args);
|
|
366
366
|
}
|
|
367
367
|
async registerAffiliate(subaccount, affiliate, broadcastMode, gasAdjustment = 2) {
|
|
368
368
|
const msg = this.registerAffiliateMsg(subaccount.address, affiliate);
|
|
369
|
-
return this.send(subaccount
|
|
369
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, broadcastMode, undefined, gasAdjustment);
|
|
370
370
|
}
|
|
371
371
|
registerAffiliateMsg(...args) {
|
|
372
372
|
return this.composer.composeMsgRegisterAffiliate(...args);
|
|
@@ -376,16 +376,16 @@ class Post {
|
|
|
376
376
|
}
|
|
377
377
|
async createMarketPermissionless(ticker, subaccount, broadcastMode, gasAdjustment, memo) {
|
|
378
378
|
const msg = this.launchMarketMsg(subaccount.address, ticker, subaccount.subaccountNumber);
|
|
379
|
-
return this.send(subaccount
|
|
379
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, memo, broadcastMode, undefined, gasAdjustment);
|
|
380
380
|
}
|
|
381
381
|
async addAuthenticator(subaccount, authenticatorType, data) {
|
|
382
382
|
const msg = this.composer.composeMsgAddAuthenticator(subaccount.address, authenticatorType, data);
|
|
383
|
-
return this.send(subaccount
|
|
383
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, tendermint_rpc_1.Method.BroadcastTxSync, undefined, undefined);
|
|
384
384
|
}
|
|
385
385
|
async removeAuthenticator(subaccount, id) {
|
|
386
386
|
const msg = this.composer.composeMsgRemoveAuthenticator(subaccount.address, id);
|
|
387
|
-
return this.send(subaccount
|
|
387
|
+
return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, tendermint_rpc_1.Method.BroadcastTxSync, undefined, undefined);
|
|
388
388
|
}
|
|
389
389
|
}
|
|
390
390
|
exports.Post = Post;
|
|
391
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1Q0FBc0M7QUFFdEMsK0NBQXNGO0FBQ3RGLDJEQUFnRDtBQUtoRCxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDRDQUFtRjtBQUNuRiwwQ0FBc0Q7QUFDdEQsOENBQW1EO0FBRW5ELG9DQVNrQjtBQUNsQix5Q0FBc0M7QUFHdEMscURBUTBCO0FBRTFCLG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxJQUFJO0lBZ0JmLFlBQ0UsR0FBUSxFQUNSLE9BQWUsRUFDZixNQUFtQixFQUNuQixpQkFBMEIsRUFDMUIsaUJBQTJCLEVBQzNCLHNCQUErQjtRQWQxQixxQkFBZ0IsR0FBcUIsNEJBQWdCLENBQUMsSUFBSSxDQUFDO1FBSTNELHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFDbEMsdUJBQWtCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFVM0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEsMkJBQWdCLEdBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFH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
|
|
391
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1Q0FBc0M7QUFFdEMsK0NBQXNGO0FBQ3RGLDJEQUFnRDtBQUtoRCxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDRDQUFtRjtBQUNuRiwwQ0FBc0Q7QUFDdEQsOENBQW1EO0FBRW5ELG9DQVNrQjtBQUNsQix5Q0FBc0M7QUFFdEMscURBUTBCO0FBRTFCLG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxJQUFJO0lBZ0JmLFlBQ0UsR0FBUSxFQUNSLE9BQWUsRUFDZixNQUFtQixFQUNuQixpQkFBMEIsRUFDMUIsaUJBQTJCLEVBQzNCLHNCQUErQjtRQWQxQixxQkFBZ0IsR0FBcUIsNEJBQWdCLENBQUMsSUFBSSxDQUFDO1FBSTNELHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFDbEMsdUJBQWtCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFVM0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEsMkJBQWdCLEdBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFH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
|