@dydxprotocol/v4-client-js 1.0.1 → 1.0.3
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/LICENSE +5 -2
- package/__native__/__ios__/v4-native-client.js +16 -16
- package/__tests__/modules/client/Transfers.test.ts +3 -3
- package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +2 -2
- package/build/__tests__/modules/client/Transfers.test.js +2 -2
- package/build/__tests__/modules/client/ValidatorPostEndpoints.test.js +2 -2
- package/build/examples/composite_example.js +2 -2
- package/build/examples/long_term_order_cancel_example.js +2 -2
- package/build/examples/short_term_order_cancel_example.js +2 -2
- package/build/examples/short_term_order_composite_example.js +2 -2
- package/build/examples/test.js +2 -2
- package/build/examples/transfer_example_deposit.js +2 -2
- package/build/examples/transfer_example_send.js +2 -2
- package/build/examples/transfer_example_subaccount_transfer.js +2 -2
- package/build/examples/transfer_example_withdraw.js +2 -2
- package/build/examples/transfer_example_withdraw_other.js +2 -2
- package/build/examples/validator_post_example.js +2 -2
- package/build/src/clients/composite-client.d.ts +13 -13
- package/build/src/clients/composite-client.js +1 -1
- package/build/src/clients/modules/post.d.ts +9 -9
- package/build/src/clients/modules/post.js +1 -1
- package/build/src/clients/native.js +10 -10
- package/build/src/clients/subaccount.d.ts +1 -1
- package/build/src/clients/subaccount.js +4 -4
- package/build/src/index.d.ts +1 -1
- package/build/src/index.js +2 -2
- package/examples/composite_example.ts +2 -2
- package/examples/long_term_order_cancel_example.ts +2 -2
- package/examples/short_term_order_cancel_example.ts +2 -2
- package/examples/short_term_order_composite_example.ts +2 -2
- package/examples/test.ts +2 -2
- package/examples/transfer_example_deposit.ts +2 -2
- package/examples/transfer_example_send.ts +2 -2
- package/examples/transfer_example_subaccount_transfer.ts +2 -2
- package/examples/transfer_example_withdraw.ts +2 -2
- package/examples/transfer_example_withdraw_other.ts +2 -2
- package/examples/validator_post_example.ts +2 -2
- package/package.json +1 -1
- package/src/clients/composite-client.ts +15 -15
- package/src/clients/modules/post.ts +9 -9
- package/src/clients/native.ts +10 -10
- package/src/clients/subaccount.ts +1 -1
- package/src/index.ts +1 -1
|
@@ -251,7 +251,7 @@ async function placeOrder(payload) {
|
|
|
251
251
|
const triggerPrice = json.triggerPrice;
|
|
252
252
|
const marketInfo = json.marketInfo;
|
|
253
253
|
const currentHeight = json.currentHeight;
|
|
254
|
-
const subaccount = new subaccount_1.
|
|
254
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
255
255
|
const tx = await client.placeOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly, triggerPrice, marketInfo, currentHeight);
|
|
256
256
|
return (0, helpers_1.encodeJson)(tx);
|
|
257
257
|
}
|
|
@@ -294,7 +294,7 @@ async function cancelOrder(payload) {
|
|
|
294
294
|
}
|
|
295
295
|
const goodTilBlock = json.goodTilBlock;
|
|
296
296
|
const goodTilBlockTime = json.goodTilBlockTime;
|
|
297
|
-
const subaccount = new subaccount_1.
|
|
297
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
298
298
|
const tx = await client.cancelRawOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock !== 0 ? goodTilBlock : undefined, goodTilBlockTime !== 0 ? goodTilBlockTime : undefined);
|
|
299
299
|
return (0, helpers_1.encodeJson)(tx);
|
|
300
300
|
}
|
|
@@ -322,7 +322,7 @@ async function deposit(payload) {
|
|
|
322
322
|
if (amount === undefined) {
|
|
323
323
|
throw new errors_1.UserError('amount is not set');
|
|
324
324
|
}
|
|
325
|
-
const subaccount = new subaccount_1.
|
|
325
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
326
326
|
const tx = await client.depositToSubaccount(subaccount, amount);
|
|
327
327
|
return (0, helpers_1.encodeJson)(tx);
|
|
328
328
|
}
|
|
@@ -350,7 +350,7 @@ async function withdraw(payload) {
|
|
|
350
350
|
if (amount === undefined) {
|
|
351
351
|
throw new errors_1.UserError('amount is not set');
|
|
352
352
|
}
|
|
353
|
-
const subaccount = new subaccount_1.
|
|
353
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
354
354
|
const tx = await client.withdrawFromSubaccount(subaccount, amount, json.recipient);
|
|
355
355
|
return (0, helpers_1.encodeJson)(tx);
|
|
356
356
|
}
|
|
@@ -403,7 +403,7 @@ async function withdrawToIBC(subaccountNumber, amount, payload) {
|
|
|
403
403
|
typeUrl: json.msgTypeUrl,
|
|
404
404
|
value: json.msg,
|
|
405
405
|
};
|
|
406
|
-
const subaccount = new subaccount_1.
|
|
406
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
407
407
|
const subaccountMsg = client.withdrawFromSubaccountMessage(subaccount, amount);
|
|
408
408
|
const msgs = [subaccountMsg, ibcMsg];
|
|
409
409
|
const encodeObjects = new Promise((resolve) => resolve(msgs));
|
|
@@ -522,7 +522,7 @@ async function simulateDeposit(payload) {
|
|
|
522
522
|
if (amount === undefined) {
|
|
523
523
|
throw new errors_1.UserError('amount is not set');
|
|
524
524
|
}
|
|
525
|
-
const subaccount = new subaccount_1.
|
|
525
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
526
526
|
const msg = client.depositToSubaccountMessage(subaccount, amount);
|
|
527
527
|
const msgs = [msg];
|
|
528
528
|
const encodeObjects = new Promise((resolve) => resolve(msgs));
|
|
@@ -555,7 +555,7 @@ async function simulateWithdraw(payload) {
|
|
|
555
555
|
if (amount === undefined) {
|
|
556
556
|
throw new errors_1.UserError('amount is not set');
|
|
557
557
|
}
|
|
558
|
-
const subaccount = new subaccount_1.
|
|
558
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
559
559
|
const msg = client.withdrawFromSubaccountMessage(subaccount, amount, json.recipient);
|
|
560
560
|
const msgs = [msg];
|
|
561
561
|
const encodeObjects = new Promise((resolve) => resolve(msgs));
|
|
@@ -635,7 +635,7 @@ size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOn
|
|
|
635
635
|
if (wallet === undefined) {
|
|
636
636
|
throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
|
|
637
637
|
}
|
|
638
|
-
const subaccount = new subaccount_1.
|
|
638
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
639
639
|
const signed = await client.signPlaceOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly);
|
|
640
640
|
return signed;
|
|
641
641
|
}
|
|
@@ -654,7 +654,7 @@ async function signCancelOrder(subaccountNumber, clientId, orderFlags, clobPairI
|
|
|
654
654
|
if (wallet === undefined) {
|
|
655
655
|
throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
|
|
656
656
|
}
|
|
657
|
-
const subaccount = new subaccount_1.
|
|
657
|
+
const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
|
|
658
658
|
const signed = await client.signCancelOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime);
|
|
659
659
|
return signed;
|
|
660
660
|
}
|
|
@@ -821,4 +821,4 @@ async function getMarketPrice(payload) {
|
|
|
821
821
|
}
|
|
822
822
|
}
|
|
823
823
|
exports.getMarketPrice = getMarketPrice;
|
|
824
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7RUFFRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHRiwrQ0FBa0Q7QUFFbEQsbUZBQXFFO0FBR3JFLGdEQUFpRDtBQUNqRCwwQ0FBMEM7QUFDMUMsNENBQStEO0FBQy9ELGtEQUFxRTtBQUNyRSw0REFBd0Q7QUFDeEQseURBQWlFO0FBQ2pFLDJDQUVxQjtBQUNyQixtREFBK0M7QUFDL0MsMEVBQWlEO0FBQ2pELDZDQUEwQztBQVluQyxLQUFLLFVBQVUsYUFBYSxDQUNqQyxPQUFnQjtJQUVoQixJQUFJO1FBQ0YsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzVCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFURCxzQ0FTQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQ2xDLFVBQWtCO0lBRWxCLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sRUFDSixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixPQUFPLEVBQ1AsU0FBUyxFQUNULFVBQVUsRUFDVixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsb0JBQW9CLEdBQ3JCLEdBQUcsTUFBTSxDQUFDO1FBRVgsSUFBSSxVQUFVLEtBQUssU0FBUztZQUMxQixZQUFZLEtBQUssU0FBUztZQUMxQixZQUFZLEtBQUssU0FBUztZQUMxQixPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1B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
|
|
824
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7RUFFRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHRiwrQ0FBa0Q7QUFFbEQsbUZBQXFFO0FBR3JFLGdEQUFpRDtBQUNqRCwwQ0FBMEM7QUFDMUMsNENBQStEO0FBQy9ELGtEQUFxRTtBQUNyRSw0REFBd0Q7QUFDeEQseURBQWlFO0FBQ2pFLDJDQUVxQjtBQUNyQixtREFBK0M7QUFDL0MsMEVBQWlEO0FBQ2pELDZDQUE4QztBQVl2QyxLQUFLLFVBQVUsYUFBYSxDQUNqQyxPQUFnQjtJQUVoQixJQUFJO1FBQ0YsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzVCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFURCxzQ0FTQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQ2xDLFVBQWtCO0lBRWxCLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sRUFDSixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixPQUFPLEVBQ1AsU0FBUyxFQUNULFVBQVUsRUFDVixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsb0JBQW9CLEdBQ3JCLEdBQUcsTUFBTSxDQUFDO1FBRVgsSUFBSSxVQUFVLEtBQUssU0FBUztZQUMxQixZQUFZLEtBQUssU0FBUztZQUMxQixZQUFZLEtBQUssU0FBUztZQUMxQixPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLFVBQVUsS0FBSyxTQUFTO1lBQzFCLGFBQWEsS0FBSyxTQUFTO1lBQzNCLGdCQUFnQixLQUFLLFNBQVM7WUFDOUIsbUJBQW1CLEtBQUssU0FBUyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtCQUErQixDQUFDLENBQUM7U0FDdEQ7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLHlCQUFhLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sZUFBZSxHQUFHLElBQUksMkJBQWUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFO1lBQ2pFLFVBQVU7WUFDVixhQUFhO1lBQ2IsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsb0JBQW9CO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUksbUJBQU8sQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3JFLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDM0IsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLDRCQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNMLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxDQUFDLENBQUM7S0FDM0I7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQXBERCx3Q0FvREM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUNqQyxRQUFnQjtJQUVoQixJQUFJO1FBQ0YsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSx5QkFBYSxDQUFDLENBQUM7UUFDNUUsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFRLENBQUM7UUFDM0MsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQ2hDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFWRCxzQ0FVQztBQUVNLEtBQUssVUFBVSxPQUFPLENBQzNCLE9BQWdCLEVBQ2hCLFFBQWdCO0lBRWhCLElBQUk7UUFDRixNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNoQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBVkQsMEJBVUM7QUFFTSxLQUFLLFVBQVUsbUNBQW1DLENBQUMsU0FBaUI7SUFDekUsSUFBSTtRQUNGLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFBLDZDQUFnQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLHlCQUFhLENBQUMsQ0FBQztRQUN2RSxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQVEsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixPQUFPLENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBWEQsa0ZBV0M7QUFFTSxLQUFLLFVBQVUsU0FBUzs7SUFDN0IsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUEsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxlQUFlLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFBLENBQUM7UUFDekUsT0FBTyxJQUFBLG9CQUFVLEVBQUMsS0FBSyxDQUFDLENBQUM7S0FDMUI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQVhELDhCQVdDO0FBRU0sS0FBSyxVQUFVLFdBQVc7O0lBQy9CLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQSxDQUFDO1FBQzVFLE9BQU8sSUFBQSxvQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzdCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFYRCxrQ0FXQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBZTs7SUFDbEQsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUEsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxlQUFlLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDO1FBQ3RGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzdCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFYRCx3Q0FXQztBQUVNLEtBQUssVUFBVSxjQUFjOztJQUNsQyxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQSxNQUFBLFVBQVUsQ0FBQyxNQUFNLDBDQUFFLGVBQWUsQ0FBQyxHQUFHLENBQzdELCtCQUErQixFQUFFLENBQUEsQ0FBQztRQUNyQyxPQUFPLElBQUEsb0JBQVUsRUFBQyxXQUFXLEVBQUUsMkJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDMUQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQVpELHdDQVlDO0FBRU0sS0FBSyxVQUFVLG1CQUFtQjs7SUFDdkMsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUEsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxhQUFhLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUEsQ0FBQztRQUNyRixPQUFPLElBQUEsb0JBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQztLQUM1QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBWEQsa0RBV0M7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUM5QixPQUFlOztJQUVmLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDbEMsTUFBTSxJQUFJLGtCQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNwRDtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixNQUFNLElBQUksa0JBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDekM7UUFDRCw0REFBNEQ7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsTUFBQSxJQUFJLENBQUMsUUFBUSxtQ0FBSSxLQUFLLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsVUFBVSxtQ0FBSSxLQUFLLENBQUM7UUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV2QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBd0IsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBdUIsQ0FBQztRQUVuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFjLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEUsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUNoQyxVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLElBQUksRUFDSixRQUFRLEVBQ1IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLGFBQWEsQ0FDZCxDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQTNFRCxnQ0EyRUM7QUFFRCxTQUFnQixZQUFZLENBQUMsS0FBWTtJQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RSxPQUFPLGFBQWEsSUFBSSxHQUFHLENBQUM7QUFDOUIsQ0FBQztBQUhELG9DQUdDO0FBRU0sS0FBSyxVQUFVLFdBQVcsQ0FDL0IsT0FBZTtJQUVmLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDbEMsTUFBTSxJQUFJLGtCQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNwRDtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUM1QixNQUFNLElBQUksa0JBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsTUFBTSxJQUFJLGtCQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FDcEMsVUFBVSxFQUNWLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUM3QyxnQkFBZ0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3RELENBQUM7UUFDRixPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBOUNELGtDQThDQztBQUVNLEtBQUssVUFBVSxPQUFPLENBQzNCLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsc0RBQXNELENBQUMsQ0FBQztTQUM3RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxrQkFBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUN6QyxVQUFVLEVBQ1YsTUFBTSxDQUNQLENBQUM7UUFDRixPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBaENELDBCQWdDQztBQUVNLEtBQUssVUFBVSxRQUFRLENBQzVCLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsc0RBQXNELENBQUMsQ0FBQztTQUM3RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxrQkFBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHNCQUFzQixDQUM1QyxVQUFVLEVBQ1YsTUFBTSxFQUNOLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztRQUNGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUFqQ0QsNEJBaUNDO0FBRU0sS0FBSyxVQUFVLE1BQU0sQ0FDMUIsT0FBZTtJQUVmLElBQUk7UUFDRixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsTUFBTSxJQUFJLGtCQUFTLENBQUMsNERBQTRELENBQUMsQ0FBQztTQUNuRjtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxrQkFBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFcEYsT0FBTyxJQUFBLG9CQUFVLEVBQUMsUUFBUSxDQUFDLENBQUM7S0FDN0I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQTdCRCx3QkE2QkM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUNqQyxnQkFBd0IsRUFDeEIsTUFBYyxFQUNkLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBUyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLE1BQU0sTUFBTSxHQUFpQjtZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2hCLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFjLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvRSxNQUFNLElBQUksR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyQyxNQUFNLGFBQWEsR0FBNEIsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXZGLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDMUIsTUFBTSxFQUNOLEdBQUcsRUFBRTtZQUNILE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsRUFDRCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQTVDRCxzQ0E0Q0M7QUFFTSxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDMUM7UUFFRCxNQUFNLEdBQUcsR0FBaUIsTUFBTSxDQUFDLGdCQUFnQixDQUMvQyxNQUFNLEVBQ04sTUFBTSxFQUNOLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSxhQUFhLEdBQTRCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV2RixNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQzFCLE1BQU0sRUFDTixHQUFHLEVBQUU7WUFDSCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLEVBQ0QsS0FBSyxDQUNOLENBQUM7UUFDRixPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBdENELGtEQXNDQztBQUVNLEtBQUssVUFBVSxpQkFBaUI7SUFDckMsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFRLENBQUM7UUFFM0MsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUc7YUFDeEMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRSxPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBbEJELDhDQWtCQztBQUVNLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFRLENBQUM7UUFFM0MsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBakJELGdEQWlCQztBQUVNLEtBQUssVUFBVSxZQUFZLENBQ2hDLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsTUFBTSxJQUFJLGtCQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUMzQztRQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sSUFBQSxvQkFBVSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUFuQkQsb0NBbUJDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FDbkMsT0FBZTtJQUVmLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDbEMsTUFBTSxJQUFJLGtCQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNwRDtRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDMUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFjLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEUsTUFBTSxHQUFHLEdBQWlCLE1BQU0sQ0FBQywwQkFBMEIsQ0FDekQsVUFBVSxFQUNWLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsTUFBTSxhQUFhLEdBQTRCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV2RixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQ2xDLFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLEdBQUcsRUFBRTtZQUNILE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQy9CO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUF4Q0QsMENBd0NDO0FBRU0sS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxPQUFlO0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLElBQUksa0JBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMxQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxNQUFNLEdBQUcsR0FBaUIsTUFBTSxDQUFDLDZCQUE2QixDQUM1RCxVQUFVLEVBQ1YsTUFBTSxFQUNOLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sYUFBYSxHQUE0QixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdkYsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUNsQyxVQUFVLENBQUMsTUFBTSxFQUNqQixHQUFHLEVBQUU7WUFDSCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzNCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUF6Q0QsNENBeUNDO0FBRU0sS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxPQUFlO0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUMzQixNQUFNLElBQUksa0JBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMxQztRQUVELE1BQU0sR0FBRyxHQUFpQixNQUFNLENBQUMsZ0JBQWdCLENBQy9DLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxDQUFDLFNBQVMsQ0FDZixDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsTUFBTSxhQUFhLEdBQTRCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV2RixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQ2xDLFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLEdBQUcsRUFBRTtZQUNILE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxDQUFDLENBQUM7S0FDM0I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQXhDRCxrRUF3Q0M7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLGdCQUF3QixFQUN4QixRQUFnQixFQUNoQixVQUFrQixFQUNsQixJQUFnQixFQUNoQixRQUFjLEVBQ2QsUUFBYyxFQUNkLFdBQThCLEVBQzlCLFVBQWtCLEVBQ2xCLFVBQW1CLEVBQ25CLFlBQW9CLEVBQ3BCLGdCQUF3QixFQUN4QixjQUFzQjtJQUV0QixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLElBQUksR0FBNEIsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM1RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQ25FLE1BQU0sQ0FBQyxPQUFRLEVBQ2YsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLFFBQVEsRUFDUixRQUFRLEVBQ1IsV0FBVyxFQUNYLFVBQVUsRUFDVixjQUFjLGFBQWQsY0FBYyxjQUFkLGNBQWMsR0FBSSxDQUFDLENBQ3BCLENBQUM7WUFDRixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUM5QixNQUFNLEVBQ04sR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNWLElBQUksQ0FDTCxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMvQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBbkRELDhDQW1EQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQ2xDLGdCQUF3QixFQUN4QixRQUFnQixFQUNoQixJQUFlLEVBQ2YsSUFBZSxFQUNmLEtBQWE7QUFDYiw0REFBNEQ7QUFDNUQsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLFdBQTZCLEVBQzdCLG9CQUE0QixFQUM1QixTQUF5QixFQUN6QixRQUFpQixFQUNqQixVQUFtQjtJQUVuQixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFjLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUN4QyxVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLElBQUksRUFDSixRQUFRLEVBQ1IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBNUNELHdDQTRDQztBQUVNLEtBQUssVUFBVSxlQUFlLENBQ25DLGdCQUF3QixFQUN4QixRQUFnQixFQUNoQixVQUFzQixFQUN0QixVQUFrQixFQUNsQixZQUFvQixFQUNwQixnQkFBd0I7SUFFeEIsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLGVBQWUsQ0FDekMsVUFBVSxFQUNWLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixnQkFBZ0IsQ0FDakIsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQS9CRCwwQ0ErQkM7QUFFTSxLQUFLLFVBQVUsd0JBQXdCLENBQUMsT0FBZTtJQUM1RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLElBQUk7WUFDRixNQUFNLFdBQVcsR0FBZSxVQUFVLENBQUMsSUFBSSxDQUM3QyxVQUFVLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FDNUQsQ0FBQztZQUNGLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDZjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVhELDREQVdDO0FBRU0sS0FBSyxVQUFVLDBCQUEwQixDQUFDLEtBQWE7SUFDNUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDM0UseUVBQXlFO1lBQ3pFLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtnQkFDNUIsTUFBTSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQzthQUN4QztZQUNELE1BQU0sT0FBTyxHQUFHLElBQUEseUJBQWMsRUFBQyxVQUFVLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDOUI7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNmO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBZkQsZ0VBZUM7QUFFTSxLQUFLLFVBQVUsY0FBYyxDQUFDLGtCQUEwQjtJQUM3RDs7Ozs7Ozs7O01BU0U7SUFDRixJQUFJO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM5QixNQUFNLGdCQUFnQixHQUFHLElBQUksb0NBQWdCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakYsTUFBTSxHQUFHLEdBQUc7WUFDVixHQUFHLEVBQUUsVUFBVTtTQUNoQixDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsR0FBRyxDQUFDLENBQUM7S0FDeEI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQXhCRCx3Q0F3QkM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsa0JBQTBCO0lBQ2hFOzs7Ozs7OztNQVFFO0lBQ0YsSUFBSTtRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxvQ0FBZ0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sVUFBVSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0UsTUFBTSxHQUFHLEdBQUc7WUFDVixHQUFHLEVBQUUsVUFBVTtTQUNoQixDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsR0FBRyxDQUFDLENBQUM7S0FDeEI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQXRCRCw4Q0FzQkM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCOztJQUNwQyxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQSxNQUFBLFVBQVUsQ0FBQyxNQUFNLDBDQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQSxDQUFDO1FBQ3RGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2xDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFYRCw0Q0FXQztBQUVNLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsT0FBZTs7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsTUFBTSxJQUFJLGtCQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUMzQztRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQSxNQUFBLFVBQVU7YUFDakMsTUFBTSwwQ0FBRSxlQUFlLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUM7UUFDaEUsT0FBTyxJQUFBLG9CQUFVLEVBQUMsV0FBVyxDQUFDLENBQUM7S0FDaEM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQW5CRCwwREFtQkM7QUFFTSxLQUFLLFVBQVUsZ0NBQWdDLENBQ3BELE9BQWU7O0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDM0M7UUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUEsTUFBQSxVQUFVO2FBQ2pDLE1BQU0sMENBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDO1FBQ3pFLE9BQU8sSUFBQSxvQkFBVSxFQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2hDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFuQkQsNEVBbUJDO0FBRU0sS0FBSyxVQUFVLGNBQWMsQ0FDbEMsT0FBZTtJQUVmLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixNQUFNLElBQUksa0JBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFBLG9CQUFVLEVBQUMsV0FBVyxDQUFDLENBQUM7S0FDaEM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQWxCRCx3Q0FrQkMifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
class
|
|
3
|
+
exports.SubaccountInfo = void 0;
|
|
4
|
+
class SubaccountInfo {
|
|
5
5
|
constructor(wallet, subaccountNumber = 0) {
|
|
6
6
|
if (subaccountNumber < 0 || subaccountNumber > 127) {
|
|
7
7
|
throw new Error('Subaccount number must be between 0 and 127');
|
|
@@ -19,5 +19,5 @@ class Subaccount {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
exports.
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
exports.SubaccountInfo = SubaccountInfo;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL3N1YmFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBYSxjQUFjO0lBS3ZCLFlBQVksTUFBbUIsRUFBRSxtQkFBMkIsQ0FBQztRQUMzRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7Q0FDSjtBQXJCRCx3Q0FxQkMifQ==
|
package/build/src/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export * as utils from './lib/utils';
|
|
|
3
3
|
export * as validation from './lib/validation';
|
|
4
4
|
export * as onboarding from './lib/onboarding';
|
|
5
5
|
export { default as LocalWallet } from './clients/modules/local-wallet';
|
|
6
|
-
export {
|
|
6
|
+
export { SubaccountInfo as SubaccountClient } from './clients/subaccount';
|
|
7
7
|
export { CompositeClient } from './clients/composite-client';
|
|
8
8
|
export { IndexerClient } from './clients/indexer-client';
|
|
9
9
|
export { ValidatorClient } from './clients/validator-client';
|
package/build/src/index.js
CHANGED
|
@@ -39,7 +39,7 @@ exports.onboarding = __importStar(require("./lib/onboarding"));
|
|
|
39
39
|
var local_wallet_1 = require("./clients/modules/local-wallet");
|
|
40
40
|
Object.defineProperty(exports, "LocalWallet", { enumerable: true, get: function () { return __importDefault(local_wallet_1).default; } });
|
|
41
41
|
var subaccount_1 = require("./clients/subaccount");
|
|
42
|
-
Object.defineProperty(exports, "SubaccountClient", { enumerable: true, get: function () { return subaccount_1.
|
|
42
|
+
Object.defineProperty(exports, "SubaccountClient", { enumerable: true, get: function () { return subaccount_1.SubaccountInfo; } });
|
|
43
43
|
var composite_client_1 = require("./clients/composite-client");
|
|
44
44
|
Object.defineProperty(exports, "CompositeClient", { enumerable: true, get: function () { return composite_client_1.CompositeClient; } });
|
|
45
45
|
var indexer_client_1 = require("./clients/indexer-client");
|
|
@@ -54,4 +54,4 @@ var network_optimizer_1 = require("./network_optimizer");
|
|
|
54
54
|
Object.defineProperty(exports, "NetworkOptimizer", { enumerable: true, get: function () { return network_optimizer_1.NetworkOptimizer; } });
|
|
55
55
|
var helpers_1 = require("./lib/helpers");
|
|
56
56
|
Object.defineProperty(exports, "encodeJson", { enumerable: true, get: function () { return helpers_1.encodeJson; } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTO0FBQ1QsMENBQXdCO0FBRXhCLHFCQUFxQjtBQUNyQixxREFBcUM7QUFDckMsK0RBQStDO0FBQy9DLCtEQUErQztBQUUvQywrREFBd0U7QUFBL0QsNEhBQUEsT0FBTyxPQUFlO0FBQy9CLG1EQUEwRTtBQUFqRSw4R0FBQSxjQUFjLE9BQW9CO0FBQzNDLCtEQUE2RDtBQUFwRCxtSEFBQSxlQUFlLE9BQUE7QUFDeEIsMkRBQXlEO0FBQWhELCtHQUFBLGFBQWEsT0FBQTtBQUN0QiwrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUF1RDtBQUE5Qyw2R0FBQSxZQUFZLE9BQUE7QUFDckIseURBQXVEO0FBQTlDLDZHQUFBLFlBQVksT0FBQTtBQUNyQix5REFBdUQ7QUFBOUMscUhBQUEsZ0JBQWdCLE9BQUE7QUFDekIseUNBQTJDO0FBQWxDLHFHQUFBLFVBQVUsT0FBQSJ9
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
Network, OrderExecution, OrderSide, OrderTimeInForce, OrderType,
|
|
5
5
|
} from '../src/clients/constants';
|
|
6
6
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
7
|
-
import {
|
|
7
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
8
8
|
import { randomInt } from '../src/lib/utils';
|
|
9
9
|
import { DYDX_TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
|
|
10
10
|
import ordersParams from './human_readable_orders.json';
|
|
@@ -20,7 +20,7 @@ async function test(): Promise<void> {
|
|
|
20
20
|
const client = await CompositeClient.connect(network);
|
|
21
21
|
console.log('**Client**');
|
|
22
22
|
console.log(client);
|
|
23
|
-
const subaccount = new
|
|
23
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
24
24
|
for (const orderParams of ordersParams) {
|
|
25
25
|
try {
|
|
26
26
|
const type = OrderType[orderParams.type as keyof typeof OrderType];
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
Network, OrderExecution, OrderSide, OrderTimeInForce, OrderType,
|
|
5
5
|
} from '../src/clients/constants';
|
|
6
6
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
7
|
-
import {
|
|
7
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
8
8
|
import { randomInt } from '../src/lib/utils';
|
|
9
9
|
import { DYDX_TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
|
|
10
10
|
|
|
@@ -19,7 +19,7 @@ async function test(): Promise<void> {
|
|
|
19
19
|
const client = await CompositeClient.connect(network);
|
|
20
20
|
console.log('**Client**');
|
|
21
21
|
console.log(client);
|
|
22
|
-
const subaccount = new
|
|
22
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
23
23
|
|
|
24
24
|
/*
|
|
25
25
|
Note this example places a stateful order.
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
Network, OrderSide,
|
|
5
5
|
} from '../src/clients/constants';
|
|
6
6
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
7
|
-
import {
|
|
7
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
8
8
|
import { randomInt, sleep } from '../src/lib/utils';
|
|
9
9
|
import { DYDX_TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
|
|
10
10
|
|
|
@@ -15,7 +15,7 @@ async function test(): Promise<void> {
|
|
|
15
15
|
const client = await CompositeClient.connect(network);
|
|
16
16
|
console.log('**Client**');
|
|
17
17
|
console.log(client);
|
|
18
|
-
const subaccount = new
|
|
18
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
19
19
|
|
|
20
20
|
const currentBlock = await client.validatorClient.get.latestBlockHeight();
|
|
21
21
|
const nextValidBlockHeight = currentBlock + 1;
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
Network, OrderExecution, OrderSide,
|
|
7
7
|
} from '../src/clients/constants';
|
|
8
8
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
9
|
-
import {
|
|
9
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
10
10
|
import { randomInt } from '../src/lib/utils';
|
|
11
11
|
import { DYDX_TEST_MNEMONIC } from './constants';
|
|
12
12
|
import ordersParams from './human_readable_short_term_orders.json';
|
|
@@ -22,7 +22,7 @@ async function test(): Promise<void> {
|
|
|
22
22
|
const client = await CompositeClient.connect(network);
|
|
23
23
|
console.log('**Client**');
|
|
24
24
|
console.log(client);
|
|
25
|
-
const subaccount = new
|
|
25
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
26
26
|
for (const orderParams of ordersParams) {
|
|
27
27
|
try {
|
|
28
28
|
const side = OrderSide[orderParams.side as keyof typeof OrderSide];
|
package/examples/test.ts
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
Network, OrderExecution, OrderSide, OrderTimeInForce, OrderType,
|
|
5
5
|
} from '../src/clients/constants';
|
|
6
6
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
7
|
-
import {
|
|
7
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
8
8
|
import { randomInt } from '../src/lib/utils';
|
|
9
9
|
import { DYDX_TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
|
|
10
10
|
import ordersParams from './human_readable_orders.json';
|
|
@@ -20,7 +20,7 @@ async function test(): Promise<void> {
|
|
|
20
20
|
const client = await CompositeClient.connect(network);
|
|
21
21
|
console.log('**Client**');
|
|
22
22
|
console.log(client);
|
|
23
|
-
const subaccount = new
|
|
23
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
24
24
|
for (const orderParams of ordersParams) {
|
|
25
25
|
try {
|
|
26
26
|
const type = OrderType[orderParams.type as keyof typeof OrderType];
|
|
@@ -3,7 +3,7 @@ import Long from 'long';
|
|
|
3
3
|
import { BECH32_PREFIX } from '../src';
|
|
4
4
|
import { Network } from '../src/clients/constants';
|
|
5
5
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
6
|
-
import {
|
|
6
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
7
7
|
import { ValidatorClient } from '../src/clients/validator-client';
|
|
8
8
|
import { DYDX_TEST_MNEMONIC } from './constants';
|
|
9
9
|
|
|
@@ -15,7 +15,7 @@ async function test(): Promise<void> {
|
|
|
15
15
|
console.log('**Client**');
|
|
16
16
|
console.log(client);
|
|
17
17
|
|
|
18
|
-
const subaccount = new
|
|
18
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
19
19
|
const tx = await client.post.deposit(
|
|
20
20
|
subaccount,
|
|
21
21
|
0,
|
|
@@ -6,7 +6,7 @@ import { TEST_RECIPIENT_ADDRESS } from '../__tests__/helpers/constants';
|
|
|
6
6
|
import { BECH32_PREFIX } from '../src';
|
|
7
7
|
import { Network } from '../src/clients/constants';
|
|
8
8
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
9
|
-
import {
|
|
9
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
10
10
|
import { ValidatorClient } from '../src/clients/validator-client';
|
|
11
11
|
import { DYDX_TEST_MNEMONIC } from './constants';
|
|
12
12
|
|
|
@@ -21,7 +21,7 @@ async function test(): Promise<void> {
|
|
|
21
21
|
console.log('**Client**');
|
|
22
22
|
console.log(client);
|
|
23
23
|
|
|
24
|
-
const subaccount = new
|
|
24
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
25
25
|
|
|
26
26
|
const amount = new Long(100_000_000);
|
|
27
27
|
|
|
@@ -3,7 +3,7 @@ import Long from 'long';
|
|
|
3
3
|
import { BECH32_PREFIX } from '../src';
|
|
4
4
|
import { Network } from '../src/clients/constants';
|
|
5
5
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
6
|
-
import {
|
|
6
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
7
7
|
import { ValidatorClient } from '../src/clients/validator-client';
|
|
8
8
|
import { DYDX_TEST_MNEMONIC } from './constants';
|
|
9
9
|
|
|
@@ -15,7 +15,7 @@ async function test(): Promise<void> {
|
|
|
15
15
|
console.log('**Client**');
|
|
16
16
|
console.log(client);
|
|
17
17
|
|
|
18
|
-
const subaccount = new
|
|
18
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
19
19
|
|
|
20
20
|
const tx = await client.post.transfer(
|
|
21
21
|
subaccount,
|
|
@@ -3,7 +3,7 @@ import Long from 'long';
|
|
|
3
3
|
import { BECH32_PREFIX } from '../src';
|
|
4
4
|
import { Network } from '../src/clients/constants';
|
|
5
5
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
6
|
-
import {
|
|
6
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
7
7
|
import { ValidatorClient } from '../src/clients/validator-client';
|
|
8
8
|
import { DYDX_TEST_MNEMONIC } from './constants';
|
|
9
9
|
|
|
@@ -17,7 +17,7 @@ async function test(): Promise<void> {
|
|
|
17
17
|
console.log('**Client**');
|
|
18
18
|
console.log(client);
|
|
19
19
|
|
|
20
|
-
const subaccount = new
|
|
20
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
21
21
|
|
|
22
22
|
const tx = await client.post.withdraw(
|
|
23
23
|
subaccount,
|
|
@@ -6,7 +6,7 @@ import { TEST_RECIPIENT_ADDRESS } from '../__tests__/helpers/constants';
|
|
|
6
6
|
import { BECH32_PREFIX } from '../src';
|
|
7
7
|
import { Network } from '../src/clients/constants';
|
|
8
8
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
9
|
-
import {
|
|
9
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
10
10
|
import { ValidatorClient } from '../src/clients/validator-client';
|
|
11
11
|
import { DYDX_TEST_MNEMONIC } from './constants';
|
|
12
12
|
|
|
@@ -18,7 +18,7 @@ async function test(): Promise<void> {
|
|
|
18
18
|
console.log('**Client**');
|
|
19
19
|
console.log(client);
|
|
20
20
|
|
|
21
|
-
const subaccount = new
|
|
21
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
22
22
|
|
|
23
23
|
const amount = new Long(100_000_000);
|
|
24
24
|
|
|
@@ -4,7 +4,7 @@ import protobuf from 'protobufjs';
|
|
|
4
4
|
import { BECH32_PREFIX } from '../src';
|
|
5
5
|
import { Network } from '../src/clients/constants';
|
|
6
6
|
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
7
|
-
import {
|
|
7
|
+
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
8
8
|
import { IPlaceOrder } from '../src/clients/types';
|
|
9
9
|
import { ValidatorClient } from '../src/clients/validator-client';
|
|
10
10
|
import { randomInt } from '../src/lib/utils';
|
|
@@ -40,7 +40,7 @@ async function test(): Promise<void> {
|
|
|
40
40
|
const value1 = Long.fromNumber(400000000000);
|
|
41
41
|
console.log(value1.toString());
|
|
42
42
|
|
|
43
|
-
const subaccount = new
|
|
43
|
+
const subaccount = new SubaccountInfo(wallet, 0);
|
|
44
44
|
for (const orderParams of ordersParams) {
|
|
45
45
|
const height = await client.get.latestBlockHeight();
|
|
46
46
|
const placeOrder = dummyOrder(height);
|
package/package.json
CHANGED
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
import { IndexerClient } from './indexer-client';
|
|
33
33
|
import { UserError } from './lib/errors';
|
|
34
34
|
import LocalWallet from './modules/local-wallet';
|
|
35
|
-
import {
|
|
35
|
+
import { SubaccountInfo } from './subaccount';
|
|
36
36
|
import { ValidatorClient } from './validator-client';
|
|
37
37
|
|
|
38
38
|
// Required for encoding and decoding queries that are of type Long.
|
|
@@ -268,7 +268,7 @@ export class CompositeClient {
|
|
|
268
268
|
* @returns The transaction hash.
|
|
269
269
|
*/
|
|
270
270
|
async placeShortTermOrder(
|
|
271
|
-
subaccount:
|
|
271
|
+
subaccount: SubaccountInfo,
|
|
272
272
|
marketId: string,
|
|
273
273
|
side: OrderSide,
|
|
274
274
|
price: number,
|
|
@@ -340,7 +340,7 @@ export class CompositeClient {
|
|
|
340
340
|
* @returns The transaction hash.
|
|
341
341
|
*/
|
|
342
342
|
async placeOrder(
|
|
343
|
-
subaccount:
|
|
343
|
+
subaccount: SubaccountInfo,
|
|
344
344
|
marketId: string,
|
|
345
345
|
type: OrderType,
|
|
346
346
|
side: OrderSide,
|
|
@@ -420,7 +420,7 @@ export class CompositeClient {
|
|
|
420
420
|
* @returns The message to be passed into the protocol
|
|
421
421
|
*/
|
|
422
422
|
private async placeOrderMessage(
|
|
423
|
-
subaccount:
|
|
423
|
+
subaccount: SubaccountInfo,
|
|
424
424
|
marketId: string,
|
|
425
425
|
type: OrderType,
|
|
426
426
|
side: OrderSide,
|
|
@@ -541,7 +541,7 @@ export class CompositeClient {
|
|
|
541
541
|
* @returns The message to be passed into the protocol
|
|
542
542
|
*/
|
|
543
543
|
private async placeShortTermOrderMessage(
|
|
544
|
-
subaccount:
|
|
544
|
+
subaccount: SubaccountInfo,
|
|
545
545
|
marketId: string,
|
|
546
546
|
side: OrderSide,
|
|
547
547
|
price: number,
|
|
@@ -607,7 +607,7 @@ export class CompositeClient {
|
|
|
607
607
|
* @returns The transaction hash.
|
|
608
608
|
*/
|
|
609
609
|
async cancelRawOrder(
|
|
610
|
-
subaccount:
|
|
610
|
+
subaccount: SubaccountInfo,
|
|
611
611
|
clientId: number,
|
|
612
612
|
orderFlags: OrderFlags,
|
|
613
613
|
clobPairId: number,
|
|
@@ -639,7 +639,7 @@ export class CompositeClient {
|
|
|
639
639
|
* @returns The transaction hash.
|
|
640
640
|
*/
|
|
641
641
|
async cancelOrder(
|
|
642
|
-
subaccount:
|
|
642
|
+
subaccount: SubaccountInfo,
|
|
643
643
|
clientId: number,
|
|
644
644
|
orderFlags: OrderFlags,
|
|
645
645
|
marketId: string,
|
|
@@ -699,7 +699,7 @@ export class CompositeClient {
|
|
|
699
699
|
* @returns The transaction hash.
|
|
700
700
|
*/
|
|
701
701
|
async transferToSubaccount(
|
|
702
|
-
subaccount:
|
|
702
|
+
subaccount: SubaccountInfo,
|
|
703
703
|
recipientAddress: string,
|
|
704
704
|
recipientSubaccountNumber: number,
|
|
705
705
|
amount: string,
|
|
@@ -733,7 +733,7 @@ export class CompositeClient {
|
|
|
733
733
|
* @returns The message
|
|
734
734
|
*/
|
|
735
735
|
transferToSubaccountMessage(
|
|
736
|
-
subaccount:
|
|
736
|
+
subaccount: SubaccountInfo,
|
|
737
737
|
recipientAddress: string,
|
|
738
738
|
recipientSubaccountNumber: number,
|
|
739
739
|
amount: string,
|
|
@@ -771,7 +771,7 @@ export class CompositeClient {
|
|
|
771
771
|
* @returns The transaction hash.
|
|
772
772
|
*/
|
|
773
773
|
async depositToSubaccount(
|
|
774
|
-
subaccount:
|
|
774
|
+
subaccount: SubaccountInfo,
|
|
775
775
|
amount: string,
|
|
776
776
|
): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx> {
|
|
777
777
|
const msgs: Promise<EncodeObject[]> = new Promise((resolve) => {
|
|
@@ -797,7 +797,7 @@ export class CompositeClient {
|
|
|
797
797
|
* @returns The message
|
|
798
798
|
*/
|
|
799
799
|
depositToSubaccountMessage(
|
|
800
|
-
subaccount:
|
|
800
|
+
subaccount: SubaccountInfo,
|
|
801
801
|
amount: string,
|
|
802
802
|
): EncodeObject {
|
|
803
803
|
const validatorClient = this._validatorClient;
|
|
@@ -832,7 +832,7 @@ export class CompositeClient {
|
|
|
832
832
|
* @returns The transaction hash
|
|
833
833
|
*/
|
|
834
834
|
async withdrawFromSubaccount(
|
|
835
|
-
subaccount:
|
|
835
|
+
subaccount: SubaccountInfo,
|
|
836
836
|
amount: string,
|
|
837
837
|
recipient?: string,
|
|
838
838
|
): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx> {
|
|
@@ -863,7 +863,7 @@ export class CompositeClient {
|
|
|
863
863
|
* @returns The message
|
|
864
864
|
*/
|
|
865
865
|
withdrawFromSubaccountMessage(
|
|
866
|
-
subaccount:
|
|
866
|
+
subaccount: SubaccountInfo,
|
|
867
867
|
amount: string,
|
|
868
868
|
recipient?: string,
|
|
869
869
|
): EncodeObject {
|
|
@@ -929,7 +929,7 @@ export class CompositeClient {
|
|
|
929
929
|
}
|
|
930
930
|
|
|
931
931
|
async signPlaceOrder(
|
|
932
|
-
subaccount:
|
|
932
|
+
subaccount: SubaccountInfo,
|
|
933
933
|
marketId: string,
|
|
934
934
|
type: OrderType,
|
|
935
935
|
side: OrderSide,
|
|
@@ -973,7 +973,7 @@ export class CompositeClient {
|
|
|
973
973
|
}
|
|
974
974
|
|
|
975
975
|
async signCancelOrder(
|
|
976
|
-
subaccount:
|
|
976
|
+
subaccount: SubaccountInfo,
|
|
977
977
|
clientId: number,
|
|
978
978
|
orderFlags: OrderFlags,
|
|
979
979
|
clobPairId: number,
|