@bitgo-beta/sdk-coin-dot 1.3.3-alpha.4 → 1.3.3-alpha.5

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.
Files changed (38) hide show
  1. package/dist/src/lib/addressInitializationBuilder.d.ts.map +1 -1
  2. package/dist/src/lib/addressInitializationBuilder.js +9 -11
  3. package/dist/src/lib/batchTransactionBuilder.d.ts +1 -15
  4. package/dist/src/lib/batchTransactionBuilder.d.ts.map +1 -1
  5. package/dist/src/lib/batchTransactionBuilder.js +16 -115
  6. package/dist/src/lib/iface.d.ts +4 -57
  7. package/dist/src/lib/iface.d.ts.map +1 -1
  8. package/dist/src/lib/iface.js +2 -14
  9. package/dist/src/lib/index.d.ts +0 -1
  10. package/dist/src/lib/index.d.ts.map +1 -1
  11. package/dist/src/lib/index.js +2 -4
  12. package/dist/src/lib/nativeTransferBuilder.d.ts.map +1 -1
  13. package/dist/src/lib/nativeTransferBuilder.js +3 -4
  14. package/dist/src/lib/stakingBuilder.d.ts +0 -8
  15. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  16. package/dist/src/lib/stakingBuilder.js +11 -42
  17. package/dist/src/lib/transaction.d.ts +0 -18
  18. package/dist/src/lib/transaction.d.ts.map +1 -1
  19. package/dist/src/lib/transaction.js +65 -244
  20. package/dist/src/lib/transactionBuilder.d.ts +0 -1
  21. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  22. package/dist/src/lib/transactionBuilder.js +1 -6
  23. package/dist/src/lib/transactionBuilderFactory.d.ts +0 -2
  24. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  25. package/dist/src/lib/transactionBuilderFactory.js +2 -12
  26. package/dist/src/lib/txnSchema.d.ts +1 -1
  27. package/dist/src/lib/txnSchema.d.ts.map +1 -1
  28. package/dist/src/lib/txnSchema.js +2 -12
  29. package/dist/src/lib/utils.d.ts +2 -109
  30. package/dist/src/lib/utils.d.ts.map +1 -1
  31. package/dist/src/lib/utils.js +1 -153
  32. package/package.json +5 -5
  33. package/dist/src/lib/iface_utils.d.ts +0 -59
  34. package/dist/src/lib/iface_utils.d.ts.map +0 -1
  35. package/dist/src/lib/iface_utils.js +0 -93
  36. package/dist/src/lib/proxyBuilder.d.ts +0 -54
  37. package/dist/src/lib/proxyBuilder.d.ts.map +0 -1
  38. package/dist/src/lib/proxyBuilder.js +0 -118
@@ -1,118 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RemoveProxyBuilder = void 0;
7
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
- const iface_1 = require("./iface");
11
- const iface_utils_1 = require("./iface_utils");
12
- const transactionBuilder_1 = require("./transactionBuilder");
13
- const txnSchema_1 = require("./txnSchema");
14
- class RemoveProxyBuilder extends transactionBuilder_1.TransactionBuilder {
15
- constructor(_coinConfig) {
16
- super(_coinConfig);
17
- }
18
- /** @inheritDoc */
19
- buildTransaction() {
20
- const baseTxInfo = this.createBaseTxInfo();
21
- return txwrapper_polkadot_1.methods.proxy.removeProxy({
22
- delegate: this._delegate,
23
- proxyType: this._proxyType,
24
- delay: this._delay,
25
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
26
- }
27
- get transactionType() {
28
- return sdk_core_1.TransactionType.AddressInitialization;
29
- }
30
- /**
31
- * The proxy account to remove.
32
- *
33
- * @param {BaseAddress} owner
34
- * @returns {AddressInitializationBuilder} This builder.
35
- *
36
- * @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
37
- */
38
- owner(owner) {
39
- this.validateAddress({ address: owner.address });
40
- this._delegate = owner.address;
41
- return this;
42
- }
43
- /**
44
- * The proxy type to remove.
45
- *
46
- * @param {proxyType} proxyType
47
- * @returns {AddressInitializationBuilder} This builder.
48
- *
49
- * @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
50
- */
51
- type(proxyType) {
52
- this._proxyType = proxyType;
53
- return this;
54
- }
55
- /**
56
- * The number of blocks that an announcement must be in place for.
57
- * before the corresponding call may be dispatched.
58
- * If zero, then no announcement is needed.
59
- * TODO: move to the validity window method once it has been standardized
60
- *
61
- * @param {string} delay
62
- * @returns {AddressInitializationBuilder} This transfer builder.
63
- *
64
- * @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
65
- */
66
- delay(delay) {
67
- this.validateValue(new bignumber_js_1.default(parseInt(delay, 10)));
68
- this._delay = delay;
69
- return this;
70
- }
71
- /** @inheritdoc */
72
- validateDecodedTransaction(decodedTxn) {
73
- var _a;
74
- let validationResult;
75
- if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.RemoveProxy) {
76
- const txMethod = decodedTxn.method.args;
77
- validationResult = this.validateRemoveProxyFields(iface_utils_1.getDelegateAddress(txMethod), txMethod.proxyType, txMethod.delay);
78
- if (validationResult.error) {
79
- throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
80
- }
81
- }
82
- }
83
- /** @inheritdoc */
84
- fromImplementation(rawTransaction) {
85
- var _a, _b;
86
- const tx = super.fromImplementation(rawTransaction);
87
- if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.RemoveProxy) {
88
- const txMethod = this._method.args;
89
- this.owner({ address: iface_utils_1.getDelegateAddress(txMethod) });
90
- this.type(txMethod.proxyType);
91
- this.delay(new bignumber_js_1.default(txMethod.delay).toString());
92
- }
93
- else {
94
- throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_b = this._method) === null || _b === void 0 ? void 0 : _b.name}. Expected ${iface_1.MethodNames.RemoveProxy}`);
95
- }
96
- return tx;
97
- }
98
- /** @inheritdoc */
99
- validateTransaction(_) {
100
- super.validateTransaction(_);
101
- this.validateFields();
102
- }
103
- validateFields() {
104
- const validationResult = this.validateRemoveProxyFields(this._delegate, this._proxyType, this._delay);
105
- if (validationResult.error) {
106
- throw new sdk_core_1.InvalidTransactionError(`RemoveProxy Transaction validation failed: ${validationResult.error.message}`);
107
- }
108
- }
109
- validateRemoveProxyFields(delegate, proxyType, delay) {
110
- return txnSchema_1.AddressInitializationSchema.validate({
111
- delegate,
112
- proxyType,
113
- delay,
114
- });
115
- }
116
- }
117
- exports.RemoveProxyBuilder = RemoveProxyBuilder;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9wcm94eUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTZGO0FBRzdGLHNFQUF3RDtBQUN4RCxnRUFBcUM7QUFFckMsbUNBQStEO0FBQy9ELCtDQUFtRDtBQUVuRCw2REFBMEQ7QUFDMUQsMkNBQTBEO0FBRTFELE1BQWEsa0JBQW1CLFNBQVEsdUNBQWtCO0lBS3hELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQzlCO1lBQ0UsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbkIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMscUJBQXFCLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsS0FBa0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FB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IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICdqb2knO1xuaW1wb3J0IHsgQWRkUHJveHlBcmdzLCBNZXRob2ROYW1lcywgUHJveHlUeXBlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBnZXREZWxlZ2F0ZUFkZHJlc3MgfSBmcm9tICcuL2lmYWNlX3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBBZGRyZXNzSW5pdGlhbGl6YXRpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBSZW1vdmVQcm94eUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2RlbGVnYXRlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcHJveHlUeXBlOiBQcm94eVR5cGU7XG4gIHByb3RlY3RlZCBfZGVsYXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnJlbW92ZVByb3h5KFxuICAgICAge1xuICAgICAgICBkZWxlZ2F0ZTogdGhpcy5fZGVsZWdhdGUsXG4gICAgICAgIHByb3h5VHlwZTogdGhpcy5fcHJveHlUeXBlLFxuICAgICAgICBkZWxheTogdGhpcy5fZGVsYXksXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3h5IGFjY291bnQgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSBvd25lclxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyN3aHktdXNlLWEtcHJveHlcbiAgICovXG4gIG93bmVyKG93bmVyOiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogb3duZXIuYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9kZWxlZ2F0ZSA9IG93bmVyLmFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3h5IHR5cGUgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBAcGFyYW0ge3Byb3h5VHlwZX0gcHJveHlUeXBlXG4gICAqIEByZXR1cm5zIHtBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gICAqL1xuICB0eXBlKHByb3h5VHlwZTogUHJveHlUeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fcHJveHlUeXBlID0gcHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgYW4gYW5ub3VuY2VtZW50IG11c3QgYmUgaW4gcGxhY2UgZm9yLlxuICAgKiBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBtYXkgYmUgZGlzcGF0Y2hlZC5cbiAgICogSWYgemVybywgdGhlbiBubyBhbm5vdW5jZW1lbnQgaXMgbmVlZGVkLlxuICAgKiBUT0RPOiBtb3ZlIHRvIHRoZSB2YWxpZGl0eSB3aW5kb3cgbWV0aG9kIG9uY2UgaXQgaGFzIGJlZW4gc3RhbmRhcmRpemVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZWxheVxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyN0aW1lLWRlbGF5ZWQtcHJveGllc1xuICAgKi9cbiAgZGVsYXkoZGVsYXk6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHBhcnNlSW50KGRlbGF5LCAxMCkpKTtcbiAgICB0aGlzLl9kZWxheSA9IGRlbGF5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHZvaWQge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuUmVtb3ZlUHJveHkpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEFkZFByb3h5QXJncztcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB0aGlzLnZhbGlkYXRlUmVtb3ZlUHJveHlGaWVsZHMoXG4gICAgICAgIGdldERlbGVnYXRlQWRkcmVzcyh0eE1ldGhvZCksXG4gICAgICAgIHR4TWV0aG9kLnByb3h5VHlwZSxcbiAgICAgICAgdHhNZXRob2QuZGVsYXlcbiAgICAgICk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5SZW1vdmVQcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBBZGRQcm94eUFyZ3M7XG4gICAgICB0aGlzLm93bmVyKHsgYWRkcmVzczogZ2V0RGVsZWdhdGVBZGRyZXNzKHR4TWV0aG9kKSB9KTtcbiAgICAgIHRoaXMudHlwZSh0eE1ldGhvZC5wcm94eVR5cGUpO1xuICAgICAgdGhpcy5kZWxheShuZXcgQmlnTnVtYmVyKHR4TWV0aG9kLmRlbGF5KS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkICR7TWV0aG9kTmFtZXMuUmVtb3ZlUHJveHl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IHRoaXMudmFsaWRhdGVSZW1vdmVQcm94eUZpZWxkcyhcbiAgICAgIHRoaXMuX2RlbGVnYXRlLFxuICAgICAgdGhpcy5fcHJveHlUeXBlLFxuICAgICAgdGhpcy5fZGVsYXlcbiAgICApO1xuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFJlbW92ZVByb3h5IFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUmVtb3ZlUHJveHlGaWVsZHMoZGVsZWdhdGU6IHN0cmluZywgcHJveHlUeXBlOiBzdHJpbmcsIGRlbGF5OiBzdHJpbmcpOiBWYWxpZGF0aW9uUmVzdWx0IHtcbiAgICByZXR1cm4gQWRkcmVzc0luaXRpYWxpemF0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGRlbGVnYXRlLFxuICAgICAgcHJveHlUeXBlLFxuICAgICAgZGVsYXksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==