@bitgo-beta/sdk-coin-sol 2.4.3-beta.97 → 2.4.3-beta.970

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 (63) hide show
  1. package/CHANGELOG.md +960 -0
  2. package/dist/src/index.js +6 -2
  3. package/dist/src/lib/ataInitializationBuilder.d.ts.map +1 -1
  4. package/dist/src/lib/ataInitializationBuilder.js +60 -22
  5. package/dist/src/lib/closeAtaBuilder.d.ts +19 -0
  6. package/dist/src/lib/closeAtaBuilder.d.ts.map +1 -0
  7. package/dist/src/lib/closeAtaBuilder.js +69 -0
  8. package/dist/src/lib/constants.d.ts +35 -8
  9. package/dist/src/lib/constants.d.ts.map +1 -1
  10. package/dist/src/lib/constants.js +39 -10
  11. package/dist/src/lib/iface.d.ts +45 -4
  12. package/dist/src/lib/iface.d.ts.map +1 -1
  13. package/dist/src/lib/iface.js +1 -1
  14. package/dist/src/lib/index.d.ts +11 -9
  15. package/dist/src/lib/index.d.ts.map +1 -1
  16. package/dist/src/lib/index.js +44 -26
  17. package/dist/src/lib/instructionParamsFactory.d.ts +1 -1
  18. package/dist/src/lib/instructionParamsFactory.d.ts.map +1 -1
  19. package/dist/src/lib/instructionParamsFactory.js +287 -60
  20. package/dist/src/lib/keyPair.js +5 -5
  21. package/dist/src/lib/solInstructionFactory.d.ts.map +1 -1
  22. package/dist/src/lib/solInstructionFactory.js +146 -53
  23. package/dist/src/lib/stakingActivateBuilder.d.ts +9 -2
  24. package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -1
  25. package/dist/src/lib/stakingActivateBuilder.js +23 -10
  26. package/dist/src/lib/stakingAuthorizeBuilder.js +7 -7
  27. package/dist/src/lib/stakingDeactivateBuilder.d.ts +26 -1
  28. package/dist/src/lib/stakingDeactivateBuilder.d.ts.map +1 -1
  29. package/dist/src/lib/stakingDeactivateBuilder.js +106 -25
  30. package/dist/src/lib/stakingDelegateBuilder.d.ts +42 -0
  31. package/dist/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
  32. package/dist/src/lib/stakingDelegateBuilder.js +120 -0
  33. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -1
  34. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +9 -5
  35. package/dist/src/lib/stakingWithdrawBuilder.js +6 -6
  36. package/dist/src/lib/tokenTransferBuilder.d.ts +4 -1
  37. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -1
  38. package/dist/src/lib/tokenTransferBuilder.js +87 -23
  39. package/dist/src/lib/transaction.d.ts +12 -3
  40. package/dist/src/lib/transaction.d.ts.map +1 -1
  41. package/dist/src/lib/transaction.js +61 -26
  42. package/dist/src/lib/transactionBuilder.d.ts +2 -1
  43. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  44. package/dist/src/lib/transactionBuilder.js +30 -19
  45. package/dist/src/lib/transactionBuilderFactory.d.ts +22 -9
  46. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  47. package/dist/src/lib/transactionBuilderFactory.js +32 -10
  48. package/dist/src/lib/transferBuilder.js +4 -4
  49. package/dist/src/lib/transferBuilderV2.d.ts +14 -1
  50. package/dist/src/lib/transferBuilderV2.d.ts.map +1 -1
  51. package/dist/src/lib/transferBuilderV2.js +114 -11
  52. package/dist/src/lib/utils.d.ts +16 -6
  53. package/dist/src/lib/utils.d.ts.map +1 -1
  54. package/dist/src/lib/utils.js +145 -53
  55. package/dist/src/lib/walletInitializationBuilder.js +6 -6
  56. package/dist/src/sol.d.ts +71 -25
  57. package/dist/src/sol.d.ts.map +1 -1
  58. package/dist/src/sol.js +615 -81
  59. package/dist/src/solToken.d.ts +2 -1
  60. package/dist/src/solToken.d.ts.map +1 -1
  61. package/dist/src/solToken.js +6 -3
  62. package/dist/src/tsol.js +1 -1
  63. package/package.json +10 -9
package/dist/src/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -15,4 +19,4 @@ __exportStar(require("./sol"), exports);
15
19
  __exportStar(require("./solToken"), exports);
16
20
  __exportStar(require("./tsol"), exports);
17
21
  __exportStar(require("./register"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLHdDQUFzQjtBQUN0Qiw2Q0FBMkI7QUFDM0IseUNBQXVCO0FBQ3ZCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliJztcbmV4cG9ydCAqIGZyb20gJy4vc29sJztcbmV4cG9ydCAqIGZyb20gJy4vc29sVG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi90c29sJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXInO1xuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qix3Q0FBc0I7QUFDdEIsNkNBQTJCO0FBQzNCLHlDQUF1QjtBQUN2Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL3NvbCc7XG5leHBvcnQgKiBmcm9tICcuL3NvbFRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vdHNvbCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"ataInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/ataInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAA+C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAW,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAW3D,qBAAa,wBAAyB,SAAQ,kBAAkB;IAE9D,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,yBAAyB,CAA4B;gBAEjD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAclC;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAc7B;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS1B;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAIhD;;;;;;OAMG;IAEH,WAAW,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI;IAwBrD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAkC5D"}
1
+ {"version":3,"file":"ataInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/ataInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAA+C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAW,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAW3D,qBAAa,wBAAyB,SAAQ,kBAAkB;IAE9D,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,yBAAyB,CAA4B;gBAEjD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAgBlC;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAc7B;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS1B;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAIhD;;;;;;OAMG;IAEH,WAAW,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI;IA6BrD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAkD5D"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
11
15
  }) : function(o, v) {
12
16
  o["default"] = v;
13
17
  });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
21
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
37
  };
@@ -49,6 +63,8 @@ class AtaInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
49
63
  this._tokenAssociateRecipients.push({
50
64
  ownerAddress: ataInitInstruction.params.ownerAddress,
51
65
  tokenName: ataInitInstruction.params.tokenName,
66
+ tokenAddress: ataInitInstruction.params.mintAddress,
67
+ programId: ataInitInstruction.params.programId,
52
68
  });
53
69
  }
54
70
  }
@@ -63,13 +79,13 @@ class AtaInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
63
79
  if (this._tokenAssociateRecipients.length > 0) {
64
80
  throw new sdk_core_1.DuplicateMethodError('Invalid method: enableToken already used');
65
81
  }
66
- const token = utils_1.getSolTokenFromTokenName(tokenName);
82
+ const token = (0, utils_1.getSolTokenFromTokenName)(tokenName);
67
83
  if (!token) {
68
84
  throw new sdk_core_1.BuildTransactionError('Invalid transaction: invalid token name, got: ' + tokenName);
69
85
  }
70
86
  this._mint = token.tokenAddress;
71
87
  this._tokenName = token.name;
72
- utils_1.validateMintAddress(this._mint);
88
+ (0, utils_1.validateMintAddress)(this._mint);
73
89
  return this;
74
90
  }
75
91
  /**
@@ -83,7 +99,7 @@ class AtaInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
83
99
  throw new sdk_core_1.DuplicateMethodError('Invalid method: enableToken already used');
84
100
  }
85
101
  this._owner = owner;
86
- utils_1.validateOwnerAddress(owner);
102
+ (0, utils_1.validateOwnerAddress)(owner);
87
103
  return this;
88
104
  }
89
105
  /**
@@ -113,20 +129,27 @@ class AtaInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
113
129
  if (this._tokenName || this._mint) {
114
130
  throw new sdk_core_1.DuplicateMethodError('Invalid method: single mint already used');
115
131
  }
116
- utils_1.validateOwnerAddress(recipient.ownerAddress);
117
- const token = utils_1.getSolTokenFromTokenName(recipient.tokenName);
118
- if (!token) {
132
+ (0, utils_1.validateOwnerAddress)(recipient.ownerAddress);
133
+ const token = (0, utils_1.getSolTokenFromTokenName)(recipient.tokenName);
134
+ let tokenAddress;
135
+ if (recipient.tokenAddress) {
136
+ tokenAddress = recipient.tokenAddress;
137
+ }
138
+ else if (token) {
139
+ tokenAddress = token.tokenAddress;
140
+ }
141
+ else {
119
142
  throw new sdk_core_1.BuildTransactionError('Invalid transaction: invalid token name, got: ' + recipient.tokenName);
120
143
  }
121
- utils_1.validateMintAddress(token.tokenAddress);
144
+ (0, utils_1.validateMintAddress)(tokenAddress);
122
145
  this._tokenAssociateRecipients.push(recipient);
123
146
  return this;
124
147
  }
125
148
  /** @inheritdoc */
126
149
  async buildImplementation() {
127
- assert_1.default(this._sender, 'Sender must be set before building the transaction');
150
+ (0, assert_1.default)(this._sender, 'Sender must be set before building the transaction');
128
151
  if (this._tokenAssociateRecipients.length === 0) {
129
- assert_1.default(this._mint && this._tokenName, 'Mint must be set before building the transaction');
152
+ (0, assert_1.default)(this._mint && this._tokenName, 'Mint must be set before building the transaction');
130
153
  this._owner = this._owner || this._sender;
131
154
  this._tokenAssociateRecipients.push({
132
155
  ownerAddress: this._owner,
@@ -135,19 +158,34 @@ class AtaInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
135
158
  }
136
159
  this._instructionsData = [];
137
160
  await Promise.all(this._tokenAssociateRecipients.map(async (recipient) => {
138
- const token = utils_1.getSolTokenFromTokenName(recipient.tokenName);
139
- if (!token) {
161
+ const token = (0, utils_1.getSolTokenFromTokenName)(recipient.tokenName);
162
+ let tokenAddress;
163
+ let programId;
164
+ if (recipient.tokenAddress && recipient.programId) {
165
+ tokenAddress = recipient.tokenAddress;
166
+ programId = recipient.programId;
167
+ }
168
+ else if (token) {
169
+ tokenAddress = token.tokenAddress;
170
+ programId = token.programId;
171
+ }
172
+ else {
140
173
  throw new sdk_core_1.BuildTransactionError('Invalid transaction: invalid token name, got: ' + recipient.tokenName);
141
174
  }
142
- const ataPk = await utils_1.getAssociatedTokenAccountAddress(token.tokenAddress, recipient.ownerAddress);
175
+ // Use the provided ataAddress if it exists, otherwise calculate it
176
+ let ataPk = recipient.ataAddress;
177
+ if (!ataPk) {
178
+ ataPk = await (0, utils_1.getAssociatedTokenAccountAddress)(tokenAddress, recipient.ownerAddress, false, programId);
179
+ }
143
180
  this._instructionsData.push({
144
181
  type: constants_1.InstructionBuilderTypes.CreateAssociatedTokenAccount,
145
182
  params: {
146
- mintAddress: token.tokenAddress,
183
+ mintAddress: tokenAddress,
147
184
  ataAddress: ataPk,
148
185
  ownerAddress: recipient.ownerAddress,
149
186
  payerAddress: this._sender,
150
187
  tokenName: recipient.tokenName,
188
+ programId: programId,
151
189
  },
152
190
  });
153
191
  }));
@@ -155,4 +193,4 @@ class AtaInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
155
193
  }
156
194
  }
157
195
  exports.AtaInitializationBuilder = AtaInitializationBuilder;
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdGFJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUEwRDtBQUMxRCxtREFBb0c7QUFFcEcsK0NBQTRDO0FBRTVDLDJDQUFzRDtBQUN0RCxtQ0FLaUI7QUFDakIsb0RBQTRCO0FBQzVCLDBDQUE0QjtBQUU1QixNQUFhLHdCQUF5QixTQUFRLHVDQUFrQjtJQVM5RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLG9DQUFvQyxDQUFDO0lBQzlELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2hELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxtQ0FBdUIsQ0FBQyw0QkFBNEIsRUFBRTtnQkFDN0UsTUFBTSxrQkFBa0IsR0FBWSxXQUFXLENBQUM7Z0JBQ2hELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7b0JBQ2xDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsWUFBWTtvQkFDcEQsU0FBUyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTO2lCQUMvQyxDQUFDLENBQUM7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SUFBSSxDQUFDO2dCQUNsQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTthQUMzQixDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ3JELE1BQU0sS0FBSyxHQUFHLGdDQUF3QixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnREFBZ0QsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDekc7WUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLHdDQUFnQyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyw0QkFBNEI7Z0JBQzFELE1BQU0sRUFBRTtvQkFDTixXQUFXLEVBQUUsS0FBSyxDQUFDLFlBQVk7b0JBQy9CLFVBQVUsRUFBRSxLQUFLO29CQUNqQixZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7b0JBQ3BDLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDMUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO2lCQUMvQjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBbEpELDREQWtKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgRHVwbGljYXRlTWV0aG9kRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBBdGFJbml0LCBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBnZXRBc3NvY2lhdGVkVG9rZW5BY2NvdW50QWRkcmVzcyxcbiAgZ2V0U29sVG9rZW5Gcm9tVG9rZW5OYW1lLFxuICB2YWxpZGF0ZU1pbnRBZGRyZXNzLFxuICB2YWxpZGF0ZU93bmVyQWRkcmVzcyxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBjbGFzcyBBdGFJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAvLyBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cyBmaWVsZCBpbnN0ZWFkXG4gIHByaXZhdGUgX3Rva2VuTmFtZTogc3RyaW5nO1xuICAvLyBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cyBmaWVsZCBpbnN0ZWFkXG4gIHByaXZhdGUgX21pbnQ6IHN0cmluZztcbiAgLy8gQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIF90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMgZmllbGQgaW5zdGVhZFxuICBwcml2YXRlIF9vd25lcjogc3RyaW5nO1xuICBwcml2YXRlIF90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHM6IFRva2VuQXNzb2NpYXRlUmVjaXBpZW50W107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMgPSBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cyA9IFtdO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQpIHtcbiAgICAgICAgY29uc3QgYXRhSW5pdEluc3RydWN0aW9uOiBBdGFJbml0ID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5wdXNoKHtcbiAgICAgICAgICBvd25lckFkZHJlc3M6IGF0YUluaXRJbnN0cnVjdGlvbi5wYXJhbXMub3duZXJBZGRyZXNzLFxuICAgICAgICAgIHRva2VuTmFtZTogYXRhSW5pdEluc3RydWN0aW9uLnBhcmFtcy50b2tlbk5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgZW5hYmxlVG9rZW4gbWV0aG9kIGluc3RlYWRcbiAgICogU2V0cyB0aGUgbWludCBhZGRyZXNzIG9mIHRoZSBhc3NvY2lhdGVkIHRva2VuIGFjY291bnRcbiAgICpcbiAgICogQHBhcmFtIHRva2VuTmFtZSBuYW1lIG9mIHRoZSB0b2tlblxuICAgKi9cbiAgbWludCh0b2tlbk5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZU1ldGhvZEVycm9yKCdJbnZhbGlkIG1ldGhvZDogZW5hYmxlVG9rZW4gYWxyZWFkeSB1c2VkJyk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gZ2V0U29sVG9rZW5Gcm9tVG9rZW5OYW1lKHRva2VuTmFtZSk7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogaW52YWxpZCB0b2tlbiBuYW1lLCBnb3Q6ICcgKyB0b2tlbk5hbWUpO1xuICAgIH1cbiAgICB0aGlzLl9taW50ID0gdG9rZW4udG9rZW5BZGRyZXNzO1xuICAgIHRoaXMuX3Rva2VuTmFtZSA9IHRva2VuLm5hbWU7XG4gICAgdmFsaWRhdGVNaW50QWRkcmVzcyh0aGlzLl9taW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgZW5hYmxlVG9rZW4gbWV0aG9kIGluc3RlYWRcbiAgICogU2V0cyB0aGUgb3duZXIgYWRkcmVzcyBvZiB0aGUgYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50XG4gICAqXG4gICAqIEBwYXJhbSBvd25lciBvd25lciBhZGRyZXNzIG9mIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudFxuICAgKi9cbiAgb3duZXIob3duZXI6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZU1ldGhvZEVycm9yKCdJbnZhbGlkIG1ldGhvZDogZW5hYmxlVG9rZW4gYWxyZWFkeSB1c2VkJyk7XG4gICAgfVxuICAgIHRoaXMuX293bmVyID0gb3duZXI7XG4gICAgdmFsaWRhdGVPd25lckFkZHJlc3Mob3duZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gVXNlIHRoZSBhc3NvY2lhdGVkVG9rZW5BY2NvdW50UmVudCBtZXRob2QgaW5zdGVhZFxuICAgKiBVc2VkIHRvIHNldCB0aGUgbWluaW11bSByZW50IGV4ZW1wdCBhbW91bnRcbiAgICpcbiAgICogQHBhcmFtIHJlbnRFeGVtcHRBbW91bnQgbWluaW11bSByZW50IGV4ZW1wdCBhbW91bnQgaW4gbGFtcG9ydHNcbiAgICovXG4gIHJlbnRFeGVtcHRBbW91bnQocmVudEV4ZW1wdEFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgcmV0dXJuIHN1cGVyLmFzc29jaWF0ZWRUb2tlbkFjY291bnRSZW50KHJlbnRFeGVtcHRBbW91bnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgZm9yIGFkZGluZyB0b2tlbiBhc3NvY2lhdGlvbiByZWNpcGllbnRzIGNvbnNpc3RpbmdcbiAgICogIDEuIG93bmVyQWRkcmVzczogb3duZXIgb2YgdGhlIHRva2VuIGFkZHJlc3NcbiAgICogIDIuIHRva2VuTmFtZTogdGhlIG5hbWUgb2YgdG9rZW4gZW5hYmxlZCB0aGF0IGlzIHN1cHBvcnRlZCBieSBCaXRHb1xuICAgKlxuICAgKiAgQHBhcmFtIFRva2VuQXNzb2NpYXRlUmVjaXBpZW50IHRva2VuIGFzc29jaWF0ZSByZWNpcGllbnQgaW5mb1xuICAgKi9cblxuICBlbmFibGVUb2tlbihyZWNpcGllbnQ6IFRva2VuQXNzb2NpYXRlUmVjaXBpZW50KTogdGhpcyB7XG4gICAgaWYgKHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5zb21lKCh0b2tlbkFzc29jaWF0ZSkgPT4gXy5pc0VxdWFsKHRva2VuQXNzb2NpYXRlLCByZWNpcGllbnQpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgJ0ludmFsaWQgdHJhbnNhY3Rpb246IGludmFsaWQgZHVwbGljYXRlIHJlY2lwaWVudHMsIGdvdDogb3duZXIgJyArXG4gICAgICAgICAgcmVjaXBpZW50Lm93bmVyQWRkcmVzcyArXG4gICAgICAgICAgJyBhbmQgdG9rZW5OYW1lICcgK1xuICAgICAgICAgIHJlY2lwaWVudC50b2tlbk5hbWUgK1xuICAgICAgICAgICcgdHdpY2UnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdG9rZW5OYW1lIHx8IHRoaXMuX21pbnQpIHtcbiAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVNZXRob2RFcnJvcignSW52YWxpZCBtZXRob2Q6IHNpbmdsZSBtaW50IGFscmVhZHkgdXNlZCcpO1xuICAgIH1cbiAgICB2YWxpZGF0ZU93bmVyQWRkcmVzcyhyZWNpcGllbnQub3duZXJBZGRyZXNzKTtcbiAgICBjb25zdCB0b2tlbiA9IGdldFNvbFRva2VuRnJvbVRva2VuTmFtZShyZWNpcGllbnQudG9rZW5OYW1lKTtcbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBpbnZhbGlkIHRva2VuIG5hbWUsIGdvdDogJyArIHJlY2lwaWVudC50b2tlbk5hbWUpO1xuICAgIH1cbiAgICB2YWxpZGF0ZU1pbnRBZGRyZXNzKHRva2VuLnRva2VuQWRkcmVzcyk7XG5cbiAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMucHVzaChyZWNpcGllbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCAnU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBpZiAodGhpcy5fdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgYXNzZXJ0KHRoaXMuX21pbnQgJiYgdGhpcy5fdG9rZW5OYW1lLCAnTWludCBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgICB0aGlzLl9vd25lciA9IHRoaXMuX293bmVyIHx8IHRoaXMuX3NlbmRlcjtcbiAgICAgIHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5wdXNoKHtcbiAgICAgICAgb3duZXJBZGRyZXNzOiB0aGlzLl9vd25lcixcbiAgICAgICAgdG9rZW5OYW1lOiB0aGlzLl90b2tlbk5hbWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW107XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMubWFwKGFzeW5jIChyZWNpcGllbnQpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBnZXRTb2xUb2tlbkZyb21Ub2tlbk5hbWUocmVjaXBpZW50LnRva2VuTmFtZSk7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBpbnZhbGlkIHRva2VuIG5hbWUsIGdvdDogJyArIHJlY2lwaWVudC50b2tlbk5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGF0YVBrID0gYXdhaXQgZ2V0QXNzb2NpYXRlZFRva2VuQWNjb3VudEFkZHJlc3ModG9rZW4udG9rZW5BZGRyZXNzLCByZWNpcGllbnQub3duZXJBZGRyZXNzKTtcbiAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHtcbiAgICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgbWludEFkZHJlc3M6IHRva2VuLnRva2VuQWRkcmVzcyxcbiAgICAgICAgICAgIGF0YUFkZHJlc3M6IGF0YVBrLFxuICAgICAgICAgICAgb3duZXJBZGRyZXNzOiByZWNpcGllbnQub3duZXJBZGRyZXNzLFxuICAgICAgICAgICAgcGF5ZXJBZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgICAgICB0b2tlbk5hbWU6IHJlY2lwaWVudC50b2tlbk5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdGFJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTBEO0FBQzFELG1EQUFvRztBQUVwRywrQ0FBNEM7QUFFNUMsMkNBQXNEO0FBQ3RELG1DQUtpQjtBQUNqQixvREFBNEI7QUFDNUIsMENBQTRCO0FBRTVCLE1BQWEsd0JBQXlCLFNBQVEsdUNBQWtCO0lBUzlELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsb0NBQW9DLENBQUM7SUFDOUQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssbUNBQXVCLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztnQkFDOUUsTUFBTSxrQkFBa0IsR0FBWSxXQUFXLENBQUM7Z0JBQ2hELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7b0JBQ2xDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsWUFBWTtvQkFDcEQsU0FBUyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FB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QUFZLENBQUM7Z0JBQ2xDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0RBQWdELEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFHLENBQUM7WUFFRCxtRUFBbUU7WUFDbkUsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsS0FBSyxHQUFHLE1BQU0sSUFBQSx3Q0FBZ0MsRUFBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekcsQ0FBQztZQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyw0QkFBNEI7Z0JBQzFELE1BQU0sRUFBRTtvQkFDTixXQUFXLEVBQUUsWUFBWTtvQkFDekIsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWTtvQkFDcEMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUMxQixTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7b0JBQzlCLFNBQVMsRUFBRSxTQUFTO2lCQUNyQjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBektELDREQXlLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgRHVwbGljYXRlTWV0aG9kRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBBdGFJbml0LCBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBnZXRBc3NvY2lhdGVkVG9rZW5BY2NvdW50QWRkcmVzcyxcbiAgZ2V0U29sVG9rZW5Gcm9tVG9rZW5OYW1lLFxuICB2YWxpZGF0ZU1pbnRBZGRyZXNzLFxuICB2YWxpZGF0ZU93bmVyQWRkcmVzcyxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBjbGFzcyBBdGFJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAvLyBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cyBmaWVsZCBpbnN0ZWFkXG4gIHByaXZhdGUgX3Rva2VuTmFtZTogc3RyaW5nO1xuICAvLyBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cyBmaWVsZCBpbnN0ZWFkXG4gIHByaXZhdGUgX21pbnQ6IHN0cmluZztcbiAgLy8gQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIF90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMgZmllbGQgaW5zdGVhZFxuICBwcml2YXRlIF9vd25lcjogc3RyaW5nO1xuICBwcml2YXRlIF90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHM6IFRva2VuQXNzb2NpYXRlUmVjaXBpZW50W107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMgPSBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cyA9IFtdO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQpIHtcbiAgICAgICAgY29uc3QgYXRhSW5pdEluc3RydWN0aW9uOiBBdGFJbml0ID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5wdXNoKHtcbiAgICAgICAgICBvd25lckFkZHJlc3M6IGF0YUluaXRJbnN0cnVjdGlvbi5wYXJhbXMub3duZXJBZGRyZXNzLFxuICAgICAgICAgIHRva2VuTmFtZTogYXRhSW5pdEluc3RydWN0aW9uLnBhcmFtcy50b2tlbk5hbWUsXG4gICAgICAgICAgdG9rZW5BZGRyZXNzOiBhdGFJbml0SW5zdHJ1Y3Rpb24ucGFyYW1zLm1pbnRBZGRyZXNzLFxuICAgICAgICAgIHByb2dyYW1JZDogYXRhSW5pdEluc3RydWN0aW9uLnBhcmFtcy5wcm9ncmFtSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgZW5hYmxlVG9rZW4gbWV0aG9kIGluc3RlYWRcbiAgICogU2V0cyB0aGUgbWludCBhZGRyZXNzIG9mIHRoZSBhc3NvY2lhdGVkIHRva2VuIGFjY291bnRcbiAgICpcbiAgICogQHBhcmFtIHRva2VuTmFtZSBuYW1lIG9mIHRoZSB0b2tlblxuICAgKi9cbiAgbWludCh0b2tlbk5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZU1ldGhvZEVycm9yKCdJbnZhbGlkIG1ldGhvZDogZW5hYmxlVG9rZW4gYWxyZWFkeSB1c2VkJyk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gZ2V0U29sVG9rZW5Gcm9tVG9rZW5OYW1lKHRva2VuTmFtZSk7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogaW52YWxpZCB0b2tlbiBuYW1lLCBnb3Q6ICcgKyB0b2tlbk5hbWUpO1xuICAgIH1cbiAgICB0aGlzLl9taW50ID0gdG9rZW4udG9rZW5BZGRyZXNzO1xuICAgIHRoaXMuX3Rva2VuTmFtZSA9IHRva2VuLm5hbWU7XG4gICAgdmFsaWRhdGVNaW50QWRkcmVzcyh0aGlzLl9taW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgZW5hYmxlVG9rZW4gbWV0aG9kIGluc3RlYWRcbiAgICogU2V0cyB0aGUgb3duZXIgYWRkcmVzcyBvZiB0aGUgYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50XG4gICAqXG4gICAqIEBwYXJhbSBvd25lciBvd25lciBhZGRyZXNzIG9mIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudFxuICAgKi9cbiAgb3duZXIob3duZXI6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZU1ldGhvZEVycm9yKCdJbnZhbGlkIG1ldGhvZDogZW5hYmxlVG9rZW4gYWxyZWFkeSB1c2VkJyk7XG4gICAgfVxuICAgIHRoaXMuX293bmVyID0gb3duZXI7XG4gICAgdmFsaWRhdGVPd25lckFkZHJlc3Mob3duZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gVXNlIHRoZSBhc3NvY2lhdGVkVG9rZW5BY2NvdW50UmVudCBtZXRob2QgaW5zdGVhZFxuICAgKiBVc2VkIHRvIHNldCB0aGUgbWluaW11bSByZW50IGV4ZW1wdCBhbW91bnRcbiAgICpcbiAgICogQHBhcmFtIHJlbnRFeGVtcHRBbW91bnQgbWluaW11bSByZW50IGV4ZW1wdCBhbW91bnQgaW4gbGFtcG9ydHNcbiAgICovXG4gIHJlbnRFeGVtcHRBbW91bnQocmVudEV4ZW1wdEFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgcmV0dXJuIHN1cGVyLmFzc29jaWF0ZWRUb2tlbkFjY291bnRSZW50KHJlbnRFeGVtcHRBbW91bnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgZm9yIGFkZGluZyB0b2tlbiBhc3NvY2lhdGlvbiByZWNpcGllbnRzIGNvbnNpc3RpbmdcbiAgICogIDEuIG93bmVyQWRkcmVzczogb3duZXIgb2YgdGhlIHRva2VuIGFkZHJlc3NcbiAgICogIDIuIHRva2VuTmFtZTogdGhlIG5hbWUgb2YgdG9rZW4gZW5hYmxlZCB0aGF0IGlzIHN1cHBvcnRlZCBieSBCaXRHb1xuICAgKlxuICAgKiAgQHBhcmFtIFRva2VuQXNzb2NpYXRlUmVjaXBpZW50IHRva2VuIGFzc29jaWF0ZSByZWNpcGllbnQgaW5mb1xuICAgKi9cblxuICBlbmFibGVUb2tlbihyZWNpcGllbnQ6IFRva2VuQXNzb2NpYXRlUmVjaXBpZW50KTogdGhpcyB7XG4gICAgaWYgKHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5zb21lKCh0b2tlbkFzc29jaWF0ZSkgPT4gXy5pc0VxdWFsKHRva2VuQXNzb2NpYXRlLCByZWNpcGllbnQpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgJ0ludmFsaWQgdHJhbnNhY3Rpb246IGludmFsaWQgZHVwbGljYXRlIHJlY2lwaWVudHMsIGdvdDogb3duZXIgJyArXG4gICAgICAgICAgcmVjaXBpZW50Lm93bmVyQWRkcmVzcyArXG4gICAgICAgICAgJyBhbmQgdG9rZW5OYW1lICcgK1xuICAgICAgICAgIHJlY2lwaWVudC50b2tlbk5hbWUgK1xuICAgICAgICAgICcgdHdpY2UnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdG9rZW5OYW1lIHx8IHRoaXMuX21pbnQpIHtcbiAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVNZXRob2RFcnJvcignSW52YWxpZCBtZXRob2Q6IHNpbmdsZSBtaW50IGFscmVhZHkgdXNlZCcpO1xuICAgIH1cbiAgICB2YWxpZGF0ZU93bmVyQWRkcmVzcyhyZWNpcGllbnQub3duZXJBZGRyZXNzKTtcbiAgICBjb25zdCB0b2tlbiA9IGdldFNvbFRva2VuRnJvbVRva2VuTmFtZShyZWNpcGllbnQudG9rZW5OYW1lKTtcbiAgICBsZXQgdG9rZW5BZGRyZXNzOiBzdHJpbmc7XG4gICAgaWYgKHJlY2lwaWVudC50b2tlbkFkZHJlc3MpIHtcbiAgICAgIHRva2VuQWRkcmVzcyA9IHJlY2lwaWVudC50b2tlbkFkZHJlc3M7XG4gICAgfSBlbHNlIGlmICh0b2tlbikge1xuICAgICAgdG9rZW5BZGRyZXNzID0gdG9rZW4udG9rZW5BZGRyZXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBpbnZhbGlkIHRva2VuIG5hbWUsIGdvdDogJyArIHJlY2lwaWVudC50b2tlbk5hbWUpO1xuICAgIH1cbiAgICB2YWxpZGF0ZU1pbnRBZGRyZXNzKHRva2VuQWRkcmVzcyk7XG5cbiAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMucHVzaChyZWNpcGllbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCAnU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBpZiAodGhpcy5fdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgYXNzZXJ0KHRoaXMuX21pbnQgJiYgdGhpcy5fdG9rZW5OYW1lLCAnTWludCBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgICB0aGlzLl9vd25lciA9IHRoaXMuX293bmVyIHx8IHRoaXMuX3NlbmRlcjtcblxuICAgICAgdGhpcy5fdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzLnB1c2goe1xuICAgICAgICBvd25lckFkZHJlc3M6IHRoaXMuX293bmVyLFxuICAgICAgICB0b2tlbk5hbWU6IHRoaXMuX3Rva2VuTmFtZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbXTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5tYXAoYXN5bmMgKHJlY2lwaWVudCkgPT4ge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGdldFNvbFRva2VuRnJvbVRva2VuTmFtZShyZWNpcGllbnQudG9rZW5OYW1lKTtcbiAgICAgICAgbGV0IHRva2VuQWRkcmVzczogc3RyaW5nO1xuICAgICAgICBsZXQgcHJvZ3JhbUlkOiBzdHJpbmc7XG4gICAgICAgIGlmIChyZWNpcGllbnQudG9rZW5BZGRyZXNzICYmIHJlY2lwaWVudC5wcm9ncmFtSWQpIHtcbiAgICAgICAgICB0b2tlbkFkZHJlc3MgPSByZWNpcGllbnQudG9rZW5BZGRyZXNzO1xuICAgICAgICAgIHByb2dyYW1JZCA9IHJlY2lwaWVudC5wcm9ncmFtSWQ7XG4gICAgICAgIH0gZWxzZSBpZiAodG9rZW4pIHtcbiAgICAgICAgICB0b2tlbkFkZHJlc3MgPSB0b2tlbi50b2tlbkFkZHJlc3M7XG4gICAgICAgICAgcHJvZ3JhbUlkID0gdG9rZW4ucHJvZ3JhbUlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IGludmFsaWQgdG9rZW4gbmFtZSwgZ290OiAnICsgcmVjaXBpZW50LnRva2VuTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2UgdGhlIHByb3ZpZGVkIGF0YUFkZHJlc3MgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgY2FsY3VsYXRlIGl0XG4gICAgICAgIGxldCBhdGFQayA9IHJlY2lwaWVudC5hdGFBZGRyZXNzO1xuICAgICAgICBpZiAoIWF0YVBrKSB7XG4gICAgICAgICAgYXRhUGsgPSBhd2FpdCBnZXRBc3NvY2lhdGVkVG9rZW5BY2NvdW50QWRkcmVzcyh0b2tlbkFkZHJlc3MsIHJlY2lwaWVudC5vd25lckFkZHJlc3MsIGZhbHNlLCBwcm9ncmFtSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHtcbiAgICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgbWludEFkZHJlc3M6IHRva2VuQWRkcmVzcyxcbiAgICAgICAgICAgIGF0YUFkZHJlc3M6IGF0YVBrLFxuICAgICAgICAgICAgb3duZXJBZGRyZXNzOiByZWNpcGllbnQub3duZXJBZGRyZXNzLFxuICAgICAgICAgICAgcGF5ZXJBZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgICAgICB0b2tlbk5hbWU6IHJlY2lwaWVudC50b2tlbk5hbWUsXG4gICAgICAgICAgICBwcm9ncmFtSWQ6IHByb2dyYW1JZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class CloseAtaBuilder extends TransactionBuilder {
6
+ protected _accountAddress: string;
7
+ protected _destinationAddress: string;
8
+ protected _authorityAddress: string;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ protected get transactionType(): TransactionType;
11
+ accountAddress(accountAddress: string): this;
12
+ destinationAddress(destinationAddress: string): this;
13
+ authorityAddress(authorityAddress: string): this;
14
+ /** @inheritDoc */
15
+ initBuilder(tx: Transaction): void;
16
+ /** @inheritdoc */
17
+ protected buildImplementation(): Promise<Transaction>;
18
+ }
19
+ //# sourceMappingURL=closeAtaBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeAtaBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/closeAtaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAMpD,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAMhD,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAYlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAsB5D"}
@@ -0,0 +1,69 @@
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.CloseAtaBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const assert_1 = __importDefault(require("assert"));
9
+ const constants_1 = require("./constants");
10
+ const transaction_1 = require("./transaction");
11
+ const transactionBuilder_1 = require("./transactionBuilder");
12
+ const utils_1 = require("./utils");
13
+ class CloseAtaBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ this._transaction = new transaction_1.Transaction(_coinConfig);
17
+ }
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.CloseAssociatedTokenAccount;
20
+ }
21
+ accountAddress(accountAddress) {
22
+ (0, utils_1.validateAddress)(accountAddress, 'accountAddress');
23
+ this._accountAddress = accountAddress;
24
+ return this;
25
+ }
26
+ destinationAddress(destinationAddress) {
27
+ (0, utils_1.validateAddress)(destinationAddress, 'destinationAddress');
28
+ this._destinationAddress = destinationAddress;
29
+ return this;
30
+ }
31
+ authorityAddress(authorityAddress) {
32
+ (0, utils_1.validateAddress)(authorityAddress, 'authorityAddress');
33
+ this._authorityAddress = authorityAddress;
34
+ return this;
35
+ }
36
+ /** @inheritDoc */
37
+ initBuilder(tx) {
38
+ super.initBuilder(tx);
39
+ for (const instruction of this._instructionsData) {
40
+ if (instruction.type === constants_1.InstructionBuilderTypes.CloseAssociatedTokenAccount) {
41
+ const ataCloseInstruction = instruction;
42
+ this.accountAddress(ataCloseInstruction.params.accountAddress);
43
+ this.destinationAddress(ataCloseInstruction.params.destinationAddress);
44
+ this.authorityAddress(ataCloseInstruction.params.authorityAddress);
45
+ }
46
+ }
47
+ }
48
+ /** @inheritdoc */
49
+ async buildImplementation() {
50
+ (0, assert_1.default)(this._accountAddress, 'Account Address must be set before building the transaction');
51
+ (0, assert_1.default)(this._destinationAddress, 'Destination Address must be set before building the transaction');
52
+ (0, assert_1.default)(this._authorityAddress, 'Authority Address must be set before building the transaction');
53
+ if (this._accountAddress === this._destinationAddress) {
54
+ throw new sdk_core_1.BuildTransactionError('Account address to close cannot be the same as the destination address');
55
+ }
56
+ const closeAssociatedTokenAccountData = {
57
+ type: constants_1.InstructionBuilderTypes.CloseAssociatedTokenAccount,
58
+ params: {
59
+ accountAddress: this._accountAddress,
60
+ destinationAddress: this._destinationAddress,
61
+ authorityAddress: this._authorityAddress,
62
+ },
63
+ };
64
+ this._instructionsData = [closeAssociatedTokenAccountData];
65
+ return await super.buildImplementation();
66
+ }
67
+ }
68
+ exports.CloseAtaBuilder = CloseAtaBuilder;
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2VBdGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbG9zZUF0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQThFO0FBRTlFLG9EQUE0QjtBQUM1QiwyQ0FBc0Q7QUFFdEQsK0NBQTRDO0FBQzVDLDZEQUEwRDtBQUMxRCxtQ0FBMEM7QUFFMUMsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUtyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQywyQkFBMkIsQ0FBQztJQUNyRCxDQUFDO0lBRUQsY0FBYyxDQUFDLGNBQXNCO1FBQ25DLElBQUEsdUJBQWUsRUFBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDM0MsSUFBQSx1QkFBZSxFQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLGdCQUF3QjtRQUN2QyxJQUFBLHVCQUFlLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssbUNBQXVCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztnQkFDN0UsTUFBTSxtQkFBbUIsR0FBYSxXQUFXLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsZUFBZSxFQUFFLDZEQUE2RCxDQUFDLENBQUM7UUFDNUYsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxpRUFBaUUsQ0FBQyxDQUFDO1FBQ3BHLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsK0RBQStELENBQUMsQ0FBQztRQUVoRyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHdFQUF3RSxDQUFDLENBQUM7UUFDNUcsQ0FBQztRQUVELE1BQU0sK0JBQStCLEdBQWE7WUFDaEQsSUFBSSxFQUFFLG1DQUF1QixDQUFDLDJCQUEyQjtZQUN6RCxNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNwQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUM1QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2FBQ3pDO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFM0QsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQXBFRCwwQ0FvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQXRhQ2xvc2UgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyB2YWxpZGF0ZUFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIENsb3NlQXRhQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfYWNjb3VudEFkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9kZXN0aW5hdGlvbkFkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9hdXRob3JpdHlBZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5DbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQ7XG4gIH1cblxuICBhY2NvdW50QWRkcmVzcyhhY2NvdW50QWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKGFjY291bnRBZGRyZXNzLCAnYWNjb3VudEFkZHJlc3MnKTtcbiAgICB0aGlzLl9hY2NvdW50QWRkcmVzcyA9IGFjY291bnRBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGVzdGluYXRpb25BZGRyZXNzKGRlc3RpbmF0aW9uQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKGRlc3RpbmF0aW9uQWRkcmVzcywgJ2Rlc3RpbmF0aW9uQWRkcmVzcycpO1xuICAgIHRoaXMuX2Rlc3RpbmF0aW9uQWRkcmVzcyA9IGRlc3RpbmF0aW9uQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGF1dGhvcml0eUFkZHJlc3MoYXV0aG9yaXR5QWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKGF1dGhvcml0eUFkZHJlc3MsICdhdXRob3JpdHlBZGRyZXNzJyk7XG4gICAgdGhpcy5fYXV0aG9yaXR5QWRkcmVzcyA9IGF1dGhvcml0eUFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudCkge1xuICAgICAgICBjb25zdCBhdGFDbG9zZUluc3RydWN0aW9uOiBBdGFDbG9zZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLmFjY291bnRBZGRyZXNzKGF0YUNsb3NlSW5zdHJ1Y3Rpb24ucGFyYW1zLmFjY291bnRBZGRyZXNzKTtcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkFkZHJlc3MoYXRhQ2xvc2VJbnN0cnVjdGlvbi5wYXJhbXMuZGVzdGluYXRpb25BZGRyZXNzKTtcbiAgICAgICAgdGhpcy5hdXRob3JpdHlBZGRyZXNzKGF0YUNsb3NlSW5zdHJ1Y3Rpb24ucGFyYW1zLmF1dGhvcml0eUFkZHJlc3MpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX2FjY291bnRBZGRyZXNzLCAnQWNjb3VudCBBZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBhc3NlcnQodGhpcy5fZGVzdGluYXRpb25BZGRyZXNzLCAnRGVzdGluYXRpb24gQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgYXNzZXJ0KHRoaXMuX2F1dGhvcml0eUFkZHJlc3MsICdBdXRob3JpdHkgQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICBpZiAodGhpcy5fYWNjb3VudEFkZHJlc3MgPT09IHRoaXMuX2Rlc3RpbmF0aW9uQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignQWNjb3VudCBhZGRyZXNzIHRvIGNsb3NlIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgZGVzdGluYXRpb24gYWRkcmVzcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudERhdGE6IEF0YUNsb3NlID0ge1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ2xvc2VBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGFjY291bnRBZGRyZXNzOiB0aGlzLl9hY2NvdW50QWRkcmVzcyxcbiAgICAgICAgZGVzdGluYXRpb25BZGRyZXNzOiB0aGlzLl9kZXN0aW5hdGlvbkFkZHJlc3MsXG4gICAgICAgIGF1dGhvcml0eUFkZHJlc3M6IHRoaXMuX2F1dGhvcml0eUFkZHJlc3MsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW2Nsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudERhdGFdO1xuXG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,8 @@
1
1
  import { ValidInstructionTypes } from './iface';
2
2
  export declare const MEMO_PROGRAM_PK = "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
3
3
  export declare const SEED_LENGTH = 32;
4
- export declare const MAX_MEMO_LENGTH = 100;
4
+ export declare const MAX_MEMO_LENGTH = 130;
5
+ export declare const STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT = 2282880;
5
6
  export declare const UNAVAILABLE_TEXT = "UNAVAILABLE";
6
7
  export declare enum ValidInstructionTypesEnum {
7
8
  AdvanceNonceAccount = "AdvanceNonceAccount",
@@ -15,10 +16,12 @@ export declare enum ValidInstructionTypesEnum {
15
16
  TokenTransfer = "TokenTransfer",
16
17
  Memo = "Memo",
17
18
  InitializeAssociatedTokenAccount = "InitializeAssociatedTokenAccount",
19
+ CloseAssociatedTokenAccount = "CloseAssociatedTokenAccount",
18
20
  Allocate = "Allocate",
19
21
  Assign = "Assign",
20
22
  Split = "Split",
21
- Authorize = "Authorize"
23
+ Authorize = "Authorize",
24
+ SetPriorityFee = "SetPriorityFee"
22
25
  }
23
26
  export declare enum InstructionBuilderTypes {
24
27
  CreateNonceAccount = "CreateNonceAccount",
@@ -29,8 +32,11 @@ export declare enum InstructionBuilderTypes {
29
32
  Memo = "Memo",
30
33
  NonceAdvance = "NonceAdvance",
31
34
  CreateAssociatedTokenAccount = "CreateAssociatedTokenAccount",
35
+ CloseAssociatedTokenAccount = "CloseAssociatedTokenAccount",
32
36
  TokenTransfer = "TokenTransfer",
33
- StakingAuthorize = "Authorize"
37
+ StakingAuthorize = "Authorize",
38
+ StakingDelegate = "Delegate",
39
+ SetPriorityFee = "SetPriorityFee"
34
40
  }
35
41
  export declare const VALID_SYSTEM_INSTRUCTION_TYPES: ValidInstructionTypes[];
36
42
  /** Const to check the order of the Wallet Init instructions when decode */
@@ -46,22 +52,38 @@ export declare const stakingActivateInstructionsIndexes: {
46
52
  readonly Delegate: 2;
47
53
  readonly Memo: 3;
48
54
  };
55
+ /** Const to check the order of the Marinade Staking Activate instructions when decode */
56
+ export declare const marinadeStakingActivateInstructionsIndexes: {
57
+ readonly Create: 0;
58
+ readonly Initialize: 1;
59
+ readonly Memo: 2;
60
+ };
49
61
  /** Const to check the order of the Staking Authorize instructions when decode */
50
62
  export declare const stakingAuthorizeInstructionsIndexes: {
51
63
  readonly Authorize: 0;
52
64
  };
65
+ /** Const to check the order of the Staking Delegate instructions when decode */
66
+ export declare const stakingDelegateInstructionsIndexes: {
67
+ readonly Delegate: 0;
68
+ };
53
69
  /** Const to check the order of the Staking Deactivate instructions when decode */
54
70
  export declare const stakingDeactivateInstructionsIndexes: {
55
71
  readonly Deactivate: 0;
56
72
  readonly Memo: 1;
57
73
  };
74
+ /** Const to check the order of the Marinade Staking Deactivate instructions when decode */
75
+ export declare const marinadeStakingDeactivateInstructionsIndexes: {
76
+ readonly Transfer: 0;
77
+ readonly Memo: 1;
78
+ };
58
79
  /** Const to check the order of the Partial Staking Deactivate instructions when decoded */
59
80
  export declare const stakingPartialDeactivateInstructionsIndexes: {
60
- readonly Allocate: 0;
61
- readonly Assign: 1;
62
- readonly Split: 2;
63
- readonly Deactivate: 3;
64
- readonly Memo: 4;
81
+ readonly Transfer: 0;
82
+ readonly Allocate: 1;
83
+ readonly Assign: 2;
84
+ readonly Split: 3;
85
+ readonly Deactivate: 4;
86
+ readonly Memo: 5;
65
87
  };
66
88
  /** Const to check the order of the Staking Withdraw instructions when decode */
67
89
  export declare const stakingWithdrawInstructionsIndexes: {
@@ -73,6 +95,11 @@ export declare const ataInitInstructionIndexes: {
73
95
  readonly InitializeAssociatedTokenAccount: 0;
74
96
  readonly Memo: 1;
75
97
  };
98
+ /** Const to check the order of the ATA init instructions when decode */
99
+ export declare const ataCloseInstructionIndexes: {
100
+ readonly CloseAssociatedTokenAccount: 0;
101
+ };
76
102
  export declare const nonceAdvanceInstruction = "AdvanceNonceAccount";
77
103
  export declare const validInstructionData = "0a00000001000000";
104
+ export declare const validInstructionData2 = "0a00000000000000";
78
105
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAE7E,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAG9C,oBAAY,yBAAyB;IACnC,mBAAmB,wBAAwB;IAC3C,MAAM,WAAW;IACjB,sBAAsB,2BAA2B;IACjD,iBAAiB,eAAe;IAChC,eAAe,aAAa;IAC5B,iBAAiB,eAAe;IAChC,eAAe,aAAa;IAC5B,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,gCAAgC,qCAAqC;IACrE,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AAGD,oBAAY,uBAAuB;IACjC,kBAAkB,uBAAuB;IACzC,eAAe,aAAa;IAC5B,iBAAiB,eAAe;IAChC,eAAe,aAAa;IAC5B,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,YAAY,iBAAiB;IAC7B,4BAA4B,iCAAiC;IAC7D,aAAa,kBAAkB;IAC/B,gBAAgB,cAAc;CAC/B;AAED,eAAO,MAAM,8BAA8B,EAAE,qBAAqB,EAgBjE,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B;;;;CAI/B,CAAC;AAEX,gFAAgF;AAChF,eAAO,MAAM,kCAAkC;;;;;CAKrC,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,mCAAmC;;CAEtC,CAAC;AAEX,kFAAkF;AAClF,eAAO,MAAM,oCAAoC;;;CAGvC,CAAC;AAEX,2FAA2F;AAC3F,eAAO,MAAM,2CAA2C;;;;;;CAM9C,CAAC;AAEX,gFAAgF;AAChF,eAAO,MAAM,kCAAkC;;;CAGrC,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,eAAO,MAAM,oBAAoB,qBAAqB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAE7E,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,gCAAgC,UAAU,CAAC;AAExD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAG9C,oBAAY,yBAAyB;IACnC,mBAAmB,wBAAwB;IAC3C,MAAM,WAAW;IACjB,sBAAsB,2BAA2B;IACjD,iBAAiB,eAAe;IAChC,eAAe,aAAa;IAC5B,iBAAiB,eAAe;IAChC,eAAe,aAAa;IAC5B,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,gCAAgC,qCAAqC;IACrE,2BAA2B,gCAAgC;IAC3D,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,cAAc,mBAAmB;CAClC;AAGD,oBAAY,uBAAuB;IACjC,kBAAkB,uBAAuB;IACzC,eAAe,aAAa;IAC5B,iBAAiB,eAAe;IAChC,eAAe,aAAa;IAC5B,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,YAAY,iBAAiB;IAC7B,4BAA4B,iCAAiC;IAC7D,2BAA2B,gCAAgC;IAC3D,aAAa,kBAAkB;IAC/B,gBAAgB,cAAc;IAC9B,eAAe,aAAa;IAC5B,cAAc,mBAAmB;CAClC;AAED,eAAO,MAAM,8BAA8B,EAAE,qBAAqB,EAkBjE,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B;;;;CAI/B,CAAC;AAEX,gFAAgF;AAChF,eAAO,MAAM,kCAAkC;;;;;CAKrC,CAAC;AAEX,yFAAyF;AACzF,eAAO,MAAM,0CAA0C;;;;CAI7C,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,mCAAmC;;CAEtC,CAAC;AAEX,gFAAgF;AAChF,eAAO,MAAM,kCAAkC;;CAErC,CAAC;AAEX,kFAAkF;AAClF,eAAO,MAAM,oCAAoC;;;CAGvC,CAAC;AAEX,2FAA2F;AAC3F,eAAO,MAAM,4CAA4C;;;CAG/C,CAAC;AAEX,2FAA2F;AAC3F,eAAO,MAAM,2CAA2C;;;;;;;CAO9C,CAAC;AAEX,gFAAgF;AAChF,eAAO,MAAM,kCAAkC;;;CAGrC,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,0BAA0B;;CAE7B,CAAC;AAEX,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,qBAAqB,qBAAqB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validInstructionData = exports.nonceAdvanceInstruction = exports.ataInitInstructionIndexes = exports.stakingWithdrawInstructionsIndexes = exports.stakingPartialDeactivateInstructionsIndexes = exports.stakingDeactivateInstructionsIndexes = exports.stakingAuthorizeInstructionsIndexes = exports.stakingActivateInstructionsIndexes = exports.walletInitInstructionIndexes = exports.VALID_SYSTEM_INSTRUCTION_TYPES = exports.InstructionBuilderTypes = exports.ValidInstructionTypesEnum = exports.UNAVAILABLE_TEXT = exports.MAX_MEMO_LENGTH = exports.SEED_LENGTH = exports.MEMO_PROGRAM_PK = void 0;
3
+ exports.validInstructionData2 = exports.validInstructionData = exports.nonceAdvanceInstruction = exports.ataCloseInstructionIndexes = exports.ataInitInstructionIndexes = exports.stakingWithdrawInstructionsIndexes = exports.stakingPartialDeactivateInstructionsIndexes = exports.marinadeStakingDeactivateInstructionsIndexes = exports.stakingDeactivateInstructionsIndexes = exports.stakingDelegateInstructionsIndexes = exports.stakingAuthorizeInstructionsIndexes = exports.marinadeStakingActivateInstructionsIndexes = exports.stakingActivateInstructionsIndexes = exports.walletInitInstructionIndexes = exports.VALID_SYSTEM_INSTRUCTION_TYPES = exports.InstructionBuilderTypes = exports.ValidInstructionTypesEnum = exports.UNAVAILABLE_TEXT = exports.STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT = exports.MAX_MEMO_LENGTH = exports.SEED_LENGTH = exports.MEMO_PROGRAM_PK = void 0;
4
4
  exports.MEMO_PROGRAM_PK = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr';
5
5
  exports.SEED_LENGTH = 32;
6
- exports.MAX_MEMO_LENGTH = 100;
6
+ exports.MAX_MEMO_LENGTH = 130;
7
+ exports.STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT = 2282880;
7
8
  exports.UNAVAILABLE_TEXT = 'UNAVAILABLE';
8
9
  // Sdk instructions, mainly to check decoded types.
9
10
  var ValidInstructionTypesEnum;
@@ -19,11 +20,13 @@ var ValidInstructionTypesEnum;
19
20
  ValidInstructionTypesEnum["TokenTransfer"] = "TokenTransfer";
20
21
  ValidInstructionTypesEnum["Memo"] = "Memo";
21
22
  ValidInstructionTypesEnum["InitializeAssociatedTokenAccount"] = "InitializeAssociatedTokenAccount";
23
+ ValidInstructionTypesEnum["CloseAssociatedTokenAccount"] = "CloseAssociatedTokenAccount";
22
24
  ValidInstructionTypesEnum["Allocate"] = "Allocate";
23
25
  ValidInstructionTypesEnum["Assign"] = "Assign";
24
26
  ValidInstructionTypesEnum["Split"] = "Split";
25
27
  ValidInstructionTypesEnum["Authorize"] = "Authorize";
26
- })(ValidInstructionTypesEnum = exports.ValidInstructionTypesEnum || (exports.ValidInstructionTypesEnum = {}));
28
+ ValidInstructionTypesEnum["SetPriorityFee"] = "SetPriorityFee";
29
+ })(ValidInstructionTypesEnum || (exports.ValidInstructionTypesEnum = ValidInstructionTypesEnum = {}));
27
30
  // Internal instructions types
28
31
  var InstructionBuilderTypes;
29
32
  (function (InstructionBuilderTypes) {
@@ -35,9 +38,12 @@ var InstructionBuilderTypes;
35
38
  InstructionBuilderTypes["Memo"] = "Memo";
36
39
  InstructionBuilderTypes["NonceAdvance"] = "NonceAdvance";
37
40
  InstructionBuilderTypes["CreateAssociatedTokenAccount"] = "CreateAssociatedTokenAccount";
41
+ InstructionBuilderTypes["CloseAssociatedTokenAccount"] = "CloseAssociatedTokenAccount";
38
42
  InstructionBuilderTypes["TokenTransfer"] = "TokenTransfer";
39
43
  InstructionBuilderTypes["StakingAuthorize"] = "Authorize";
40
- })(InstructionBuilderTypes = exports.InstructionBuilderTypes || (exports.InstructionBuilderTypes = {}));
44
+ InstructionBuilderTypes["StakingDelegate"] = "Delegate";
45
+ InstructionBuilderTypes["SetPriorityFee"] = "SetPriorityFee";
46
+ })(InstructionBuilderTypes || (exports.InstructionBuilderTypes = InstructionBuilderTypes = {}));
41
47
  exports.VALID_SYSTEM_INSTRUCTION_TYPES = [
42
48
  ValidInstructionTypesEnum.AdvanceNonceAccount,
43
49
  ValidInstructionTypesEnum.Create,
@@ -49,11 +55,13 @@ exports.VALID_SYSTEM_INSTRUCTION_TYPES = [
49
55
  ValidInstructionTypesEnum.InitializeNonceAccount,
50
56
  ValidInstructionTypesEnum.Memo,
51
57
  ValidInstructionTypesEnum.InitializeAssociatedTokenAccount,
58
+ ValidInstructionTypesEnum.CloseAssociatedTokenAccount,
52
59
  ValidInstructionTypesEnum.TokenTransfer,
53
60
  ValidInstructionTypesEnum.Allocate,
54
61
  ValidInstructionTypesEnum.Assign,
55
62
  ValidInstructionTypesEnum.Split,
56
63
  ValidInstructionTypesEnum.Authorize,
64
+ ValidInstructionTypesEnum.SetPriorityFee,
57
65
  ];
58
66
  /** Const to check the order of the Wallet Init instructions when decode */
59
67
  exports.walletInitInstructionIndexes = {
@@ -68,22 +76,38 @@ exports.stakingActivateInstructionsIndexes = {
68
76
  Delegate: 2,
69
77
  Memo: 3,
70
78
  };
79
+ /** Const to check the order of the Marinade Staking Activate instructions when decode */
80
+ exports.marinadeStakingActivateInstructionsIndexes = {
81
+ Create: 0,
82
+ Initialize: 1,
83
+ Memo: 2,
84
+ };
71
85
  /** Const to check the order of the Staking Authorize instructions when decode */
72
86
  exports.stakingAuthorizeInstructionsIndexes = {
73
87
  Authorize: 0,
74
88
  };
89
+ /** Const to check the order of the Staking Delegate instructions when decode */
90
+ exports.stakingDelegateInstructionsIndexes = {
91
+ Delegate: 0,
92
+ };
75
93
  /** Const to check the order of the Staking Deactivate instructions when decode */
76
94
  exports.stakingDeactivateInstructionsIndexes = {
77
95
  Deactivate: 0,
78
96
  Memo: 1,
79
97
  };
98
+ /** Const to check the order of the Marinade Staking Deactivate instructions when decode */
99
+ exports.marinadeStakingDeactivateInstructionsIndexes = {
100
+ Transfer: 0,
101
+ Memo: 1,
102
+ };
80
103
  /** Const to check the order of the Partial Staking Deactivate instructions when decoded */
81
104
  exports.stakingPartialDeactivateInstructionsIndexes = {
82
- Allocate: 0,
83
- Assign: 1,
84
- Split: 2,
85
- Deactivate: 3,
86
- Memo: 4,
105
+ Transfer: 0,
106
+ Allocate: 1,
107
+ Assign: 2,
108
+ Split: 3,
109
+ Deactivate: 4,
110
+ Memo: 5,
87
111
  };
88
112
  /** Const to check the order of the Staking Withdraw instructions when decode */
89
113
  exports.stakingWithdrawInstructionsIndexes = {
@@ -95,6 +119,11 @@ exports.ataInitInstructionIndexes = {
95
119
  InitializeAssociatedTokenAccount: 0,
96
120
  Memo: 1,
97
121
  };
122
+ /** Const to check the order of the ATA init instructions when decode */
123
+ exports.ataCloseInstructionIndexes = {
124
+ CloseAssociatedTokenAccount: 0,
125
+ };
98
126
  exports.nonceAdvanceInstruction = 'AdvanceNonceAccount';
99
127
  exports.validInstructionData = '0a00000001000000';
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSxlQUFlLEdBQUcsNkNBQTZDLENBQUM7QUFFaEUsUUFBQSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRWpCLFFBQUEsZUFBZSxHQUFHLEdBQUcsQ0FBQztBQUV0QixRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQUU5QyxtREFBbUQ7QUFDbkQsSUFBWSx5QkFnQlg7QUFoQkQsV0FBWSx5QkFBeUI7SUFDbkMsd0VBQTJDLENBQUE7SUFDM0MsOENBQWlCLENBQUE7SUFDakIsOEVBQWlELENBQUE7SUFDakQsNkRBQWdDLENBQUE7SUFDaEMseURBQTRCLENBQUE7SUFDNUIsNkRBQWdDLENBQUE7SUFDaEMseURBQTRCLENBQUE7SUFDNUIsa0RBQXFCLENBQUE7SUFDckIsNERBQStCLENBQUE7SUFDL0IsMENBQWEsQ0FBQTtJQUNiLGtHQUFxRSxDQUFBO0lBQ3JFLGtEQUFxQixDQUFBO0lBQ3JCLDhDQUFpQixDQUFBO0lBQ2pCLDRDQUFlLENBQUE7SUFDZixvREFBdUIsQ0FBQTtBQUN6QixDQUFDLEVBaEJXLHlCQUF5QixHQUF6QixpQ0FBeUIsS0FBekIsaUNBQXlCLFFBZ0JwQztBQUVELDhCQUE4QjtBQUM5QixJQUFZLHVCQVdYO0FBWEQsV0FBWSx1QkFBdUI7SUFDakMsb0VBQXlDLENBQUE7SUFDekMsdURBQTRCLENBQUE7SUFDNUIsMkRBQWdDLENBQUE7SUFDaEMsdURBQTRCLENBQUE7SUFDNUIsZ0RBQXFCLENBQUE7SUFDckIsd0NBQWEsQ0FBQTtJQUNiLHdEQUE2QixDQUFBO0lBQzdCLHdGQUE2RCxDQUFBO0lBQzdELDBEQUErQixDQUFBO0lBQy9CLHlEQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFYVyx1QkFBdUIsR0FBdkIsK0JBQXVCLEtBQXZCLCtCQUF1QixRQVdsQztBQUVZLFFBQUEsOEJBQThCLEdBQTRCO0lBQ3JFLHlCQUF5QixDQUFDLG1CQUFtQjtJQUM3Qyx5QkFBeUIsQ0FBQyxNQUFNO0lBQ2hDLHlCQUF5QixDQUFDLGlCQUFpQjtJQUMzQyx5QkFBeUIsQ0FBQyxlQUFlO0lBQ3pDLHlCQUF5QixDQUFDLGlCQUFpQjtJQUMzQyx5QkFBeUIsQ0FBQyxlQUFlO0lBQ3pDLHlCQUF5QixDQUFDLFFBQVE7SUFDbEMseUJBQXlCLENBQUMsc0JBQXNCO0lBQ2hELHlCQUF5QixDQUFDLElBQUk7SUFDOUIseUJBQXlCLENBQUMsZ0NBQWdDO0lBQzFELHlCQUF5QixDQUFDLGFBQWE7SUFDdkMseUJBQXlCLENBQUMsUUFBUTtJQUNsQyx5QkFBeUIsQ0FBQyxNQUFNO0lBQ2hDLHlCQUF5QixDQUFDLEtBQUs7SUFDL0IseUJBQXlCLENBQUMsU0FBUztDQUNwQyxDQUFDO0FBRUYsMkVBQTJFO0FBQzlELFFBQUEsNEJBQTRCLEdBQUc7SUFDMUMsTUFBTSxFQUFFLENBQUM7SUFDVCxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pCLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLGdGQUFnRjtBQUNuRSxRQUFBLGtDQUFrQyxHQUFHO0lBQ2hELE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLENBQUM7SUFDYixRQUFRLEVBQUUsQ0FBQztJQUNYLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLGlGQUFpRjtBQUNwRSxRQUFBLG1DQUFtQyxHQUFHO0lBQ2pELFNBQVMsRUFBRSxDQUFDO0NBQ0osQ0FBQztBQUVYLGtGQUFrRjtBQUNyRSxRQUFBLG9DQUFvQyxHQUFHO0lBQ2xELFVBQVUsRUFBRSxDQUFDO0lBQ2IsSUFBSSxFQUFFLENBQUM7Q0FDQyxDQUFDO0FBRVgsMkZBQTJGO0FBQzlFLFFBQUEsMkNBQTJDLEdBQUc7SUFDekQsUUFBUSxFQUFFLENBQUM7SUFDWCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxDQUFDO0lBQ1IsVUFBVSxFQUFFLENBQUM7SUFDYixJQUFJLEVBQUUsQ0FBQztDQUNDLENBQUM7QUFFWCxnRkFBZ0Y7QUFDbkUsUUFBQSxrQ0FBa0MsR0FBRztJQUNoRCxRQUFRLEVBQUUsQ0FBQztJQUNYLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLHdFQUF3RTtBQUMzRCxRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDLGdDQUFnQyxFQUFFLENBQUM7SUFDbkMsSUFBSSxFQUFFLENBQUM7Q0FDQyxDQUFDO0FBRUUsUUFBQSx1QkFBdUIsR0FBRyxxQkFBcUIsQ0FBQztBQUNoRCxRQUFBLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRJbnN0cnVjdGlvblR5cGVzIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBNRU1PX1BST0dSQU1fUEsgPSAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIcic7XG5cbmV4cG9ydCBjb25zdCBTRUVEX0xFTkdUSCA9IDMyO1xuXG5leHBvcnQgY29uc3QgTUFYX01FTU9fTEVOR1RIID0gMTAwO1xuXG5leHBvcnQgY29uc3QgVU5BVkFJTEFCTEVfVEVYVCA9ICdVTkFWQUlMQUJMRSc7XG5cbi8vIFNkayBpbnN0cnVjdGlvbnMsIG1haW5seSB0byBjaGVjayBkZWNvZGVkIHR5cGVzLlxuZXhwb3J0IGVudW0gVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bSB7XG4gIEFkdmFuY2VOb25jZUFjY291bnQgPSAnQWR2YW5jZU5vbmNlQWNjb3VudCcsXG4gIENyZWF0ZSA9ICdDcmVhdGUnLFxuICBJbml0aWFsaXplTm9uY2VBY2NvdW50ID0gJ0luaXRpYWxpemVOb25jZUFjY291bnQnLFxuICBTdGFraW5nSW5pdGlhbGl6ZSA9ICdJbml0aWFsaXplJyxcbiAgU3Rha2luZ0RlbGVnYXRlID0gJ0RlbGVnYXRlJyxcbiAgU3Rha2luZ0RlYWN0aXZhdGUgPSAnRGVhY3RpdmF0ZScsXG4gIFN0YWtpbmdXaXRoZHJhdyA9ICdXaXRoZHJhdycsXG4gIFRyYW5zZmVyID0gJ1RyYW5zZmVyJyxcbiAgVG9rZW5UcmFuc2ZlciA9ICdUb2tlblRyYW5zZmVyJyxcbiAgTWVtbyA9ICdNZW1vJyxcbiAgSW5pdGlhbGl6ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQgPSAnSW5pdGlhbGl6ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnLFxuICBBbGxvY2F0ZSA9ICdBbGxvY2F0ZScsXG4gIEFzc2lnbiA9ICdBc3NpZ24nLFxuICBTcGxpdCA9ICdTcGxpdCcsXG4gIEF1dGhvcml6ZSA9ICdBdXRob3JpemUnLFxufVxuXG4vLyBJbnRlcm5hbCBpbnN0cnVjdGlvbnMgdHlwZXNcbmV4cG9ydCBlbnVtIEluc3RydWN0aW9uQnVpbGRlclR5cGVzIHtcbiAgQ3JlYXRlTm9uY2VBY2NvdW50ID0gJ0NyZWF0ZU5vbmNlQWNjb3VudCcsXG4gIFN0YWtpbmdBY3RpdmF0ZSA9ICdBY3RpdmF0ZScsXG4gIFN0YWtpbmdEZWFjdGl2YXRlID0gJ0RlYWN0aXZhdGUnLFxuICBTdGFraW5nV2l0aGRyYXcgPSAnV2l0aGRyYXcnLFxuICBUcmFuc2ZlciA9ICdUcmFuc2ZlcicsXG4gIE1lbW8gPSAnTWVtbycsXG4gIE5vbmNlQWR2YW5jZSA9ICdOb25jZUFkdmFuY2UnLFxuICBDcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50ID0gJ0NyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnLFxuICBUb2tlblRyYW5zZmVyID0gJ1Rva2VuVHJhbnNmZXInLFxuICBTdGFraW5nQXV0aG9yaXplID0gJ0F1dGhvcml6ZScsXG59XG5cbmV4cG9ydCBjb25zdCBWQUxJRF9TWVNURU1fSU5TVFJVQ1RJT05fVFlQRVM6IFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc1tdID0gW1xuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLkFkdmFuY2VOb25jZUFjY291bnQsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQ3JlYXRlLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlN0YWtpbmdJbml0aWFsaXplLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlN0YWtpbmdEZWxlZ2F0ZSxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5TdGFraW5nRGVhY3RpdmF0ZSxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5TdGFraW5nV2l0aGRyYXcsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uVHJhbnNmZXIsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uSW5pdGlhbGl6ZU5vbmNlQWNjb3VudCxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5NZW1vLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLkluaXRpYWxpemVBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlRva2VuVHJhbnNmZXIsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQWxsb2NhdGUsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQXNzaWduLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlNwbGl0LFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLkF1dGhvcml6ZSxcbl07XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIFdhbGxldCBJbml0IGluc3RydWN0aW9ucyB3aGVuIGRlY29kZSAqL1xuZXhwb3J0IGNvbnN0IHdhbGxldEluaXRJbnN0cnVjdGlvbkluZGV4ZXMgPSB7XG4gIENyZWF0ZTogMCxcbiAgSW5pdGlhbGl6ZU5vbmNlQWNjb3VudDogMSxcbiAgTWVtbzogMixcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIFN0YWtpbmcgQWN0aXZhdGUgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlICovXG5leHBvcnQgY29uc3Qgc3Rha2luZ0FjdGl2YXRlSW5zdHJ1Y3Rpb25zSW5kZXhlcyA9IHtcbiAgQ3JlYXRlOiAwLFxuICBJbml0aWFsaXplOiAxLFxuICBEZWxlZ2F0ZTogMixcbiAgTWVtbzogMyxcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIFN0YWtpbmcgQXV0aG9yaXplIGluc3RydWN0aW9ucyB3aGVuIGRlY29kZSAqL1xuZXhwb3J0IGNvbnN0IHN0YWtpbmdBdXRob3JpemVJbnN0cnVjdGlvbnNJbmRleGVzID0ge1xuICBBdXRob3JpemU6IDAsXG59IGFzIGNvbnN0O1xuXG4vKiogQ29uc3QgdG8gY2hlY2sgdGhlIG9yZGVyIG9mIHRoZSBTdGFraW5nIERlYWN0aXZhdGUgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlICovXG5leHBvcnQgY29uc3Qgc3Rha2luZ0RlYWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzID0ge1xuICBEZWFjdGl2YXRlOiAwLFxuICBNZW1vOiAxLFxufSBhcyBjb25zdDtcblxuLyoqIENvbnN0IHRvIGNoZWNrIHRoZSBvcmRlciBvZiB0aGUgUGFydGlhbCBTdGFraW5nIERlYWN0aXZhdGUgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlZCAqL1xuZXhwb3J0IGNvbnN0IHN0YWtpbmdQYXJ0aWFsRGVhY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMgPSB7XG4gIEFsbG9jYXRlOiAwLFxuICBBc3NpZ246IDEsXG4gIFNwbGl0OiAyLFxuICBEZWFjdGl2YXRlOiAzLFxuICBNZW1vOiA0LFxufSBhcyBjb25zdDtcblxuLyoqIENvbnN0IHRvIGNoZWNrIHRoZSBvcmRlciBvZiB0aGUgU3Rha2luZyBXaXRoZHJhdyBpbnN0cnVjdGlvbnMgd2hlbiBkZWNvZGUgKi9cbmV4cG9ydCBjb25zdCBzdGFraW5nV2l0aGRyYXdJbnN0cnVjdGlvbnNJbmRleGVzID0ge1xuICBXaXRoZHJhdzogMCxcbiAgTWVtbzogMSxcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIEFUQSBpbml0IGluc3RydWN0aW9ucyB3aGVuIGRlY29kZSAqL1xuZXhwb3J0IGNvbnN0IGF0YUluaXRJbnN0cnVjdGlvbkluZGV4ZXMgPSB7XG4gIEluaXRpYWxpemVBc3NvY2lhdGVkVG9rZW5BY2NvdW50OiAwLFxuICBNZW1vOiAxLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IG5vbmNlQWR2YW5jZUluc3RydWN0aW9uID0gJ0FkdmFuY2VOb25jZUFjY291bnQnO1xuZXhwb3J0IGNvbnN0IHZhbGlkSW5zdHJ1Y3Rpb25EYXRhID0gJzBhMDAwMDAwMDEwMDAwMDAnO1xuIl19
128
+ exports.validInstructionData2 = '0a00000000000000';
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSxlQUFlLEdBQUcsNkNBQTZDLENBQUM7QUFFaEUsUUFBQSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRWpCLFFBQUEsZUFBZSxHQUFHLEdBQUcsQ0FBQztBQUN0QixRQUFBLGdDQUFnQyxHQUFHLE9BQU8sQ0FBQztBQUUzQyxRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQUU5QyxtREFBbUQ7QUFDbkQsSUFBWSx5QkFrQlg7QUFsQkQsV0FBWSx5QkFBeUI7SUFDbkMsd0VBQTJDLENBQUE7SUFDM0MsOENBQWlCLENBQUE7SUFDakIsOEVBQWlELENBQUE7SUFDakQsNkRBQWdDLENBQUE7SUFDaEMseURBQTRCLENBQUE7SUFDNUIsNkRBQWdDLENBQUE7SUFDaEMseURBQTRCLENBQUE7SUFDNUIsa0RBQXFCLENBQUE7SUFDckIsNERBQStCLENBQUE7SUFDL0IsMENBQWEsQ0FBQTtJQUNiLGtHQUFxRSxDQUFBO0lBQ3JFLHdGQUEyRCxDQUFBO0lBQzNELGtEQUFxQixDQUFBO0lBQ3JCLDhDQUFpQixDQUFBO0lBQ2pCLDRDQUFlLENBQUE7SUFDZixvREFBdUIsQ0FBQTtJQUN2Qiw4REFBaUMsQ0FBQTtBQUNuQyxDQUFDLEVBbEJXLHlCQUF5Qix5Q0FBekIseUJBQXlCLFFBa0JwQztBQUVELDhCQUE4QjtBQUM5QixJQUFZLHVCQWNYO0FBZEQsV0FBWSx1QkFBdUI7SUFDakMsb0VBQXlDLENBQUE7SUFDekMsdURBQTRCLENBQUE7SUFDNUIsMkRBQWdDLENBQUE7SUFDaEMsdURBQTRCLENBQUE7SUFDNUIsZ0RBQXFCLENBQUE7SUFDckIsd0NBQWEsQ0FBQTtJQUNiLHdEQUE2QixDQUFBO0lBQzdCLHdGQUE2RCxDQUFBO0lBQzdELHNGQUEyRCxDQUFBO0lBQzNELDBEQUErQixDQUFBO0lBQy9CLHlEQUE4QixDQUFBO0lBQzlCLHVEQUE0QixDQUFBO0lBQzVCLDREQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFkVyx1QkFBdUIsdUNBQXZCLHVCQUF1QixRQWNsQztBQUVZLFFBQUEsOEJBQThCLEdBQTRCO0lBQ3JFLHlCQUF5QixDQUFDLG1CQUFtQjtJQUM3Qyx5QkFBeUIsQ0FBQyxNQUFNO0lBQ2hDLHlCQUF5QixDQUFDLGlCQUFpQjtJQUMzQyx5QkFBeUIsQ0FBQyxlQUFlO0lBQ3pDLHlCQUF5QixDQUFDLGlCQUFpQjtJQUMzQyx5QkFBeUIsQ0FBQyxlQUFlO0lBQ3pDLHlCQUF5QixDQUFDLFFBQVE7SUFDbEMseUJBQXlCLENBQUMsc0JBQXNCO0lBQ2hELHlCQUF5QixDQUFDLElBQUk7SUFDOUIseUJBQXlCLENBQUMsZ0NBQWdDO0lBQzFELHlCQUF5QixDQUFDLDJCQUEyQjtJQUNyRCx5QkFBeUIsQ0FBQyxhQUFhO0lBQ3ZDLHlCQUF5QixDQUFDLFFBQVE7SUFDbEMseUJBQXlCLENBQUMsTUFBTTtJQUNoQyx5QkFBeUIsQ0FBQyxLQUFLO0lBQy9CLHlCQUF5QixDQUFDLFNBQVM7SUFDbkMseUJBQXlCLENBQUMsY0FBYztDQUN6QyxDQUFDO0FBRUYsMkVBQTJFO0FBQzlELFFBQUEsNEJBQTRCLEdBQUc7SUFDMUMsTUFBTSxFQUFFLENBQUM7SUFDVCxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pCLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLGdGQUFnRjtBQUNuRSxRQUFBLGtDQUFrQyxHQUFHO0lBQ2hELE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLENBQUM7SUFDYixRQUFRLEVBQUUsQ0FBQztJQUNYLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLHlGQUF5RjtBQUM1RSxRQUFBLDBDQUEwQyxHQUFHO0lBQ3hELE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLENBQUM7SUFDYixJQUFJLEVBQUUsQ0FBQztDQUNDLENBQUM7QUFFWCxpRkFBaUY7QUFDcEUsUUFBQSxtQ0FBbUMsR0FBRztJQUNqRCxTQUFTLEVBQUUsQ0FBQztDQUNKLENBQUM7QUFFWCxnRkFBZ0Y7QUFDbkUsUUFBQSxrQ0FBa0MsR0FBRztJQUNoRCxRQUFRLEVBQUUsQ0FBQztDQUNILENBQUM7QUFFWCxrRkFBa0Y7QUFDckUsUUFBQSxvQ0FBb0MsR0FBRztJQUNsRCxVQUFVLEVBQUUsQ0FBQztJQUNiLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLDJGQUEyRjtBQUM5RSxRQUFBLDRDQUE0QyxHQUFHO0lBQzFELFFBQVEsRUFBRSxDQUFDO0lBQ1gsSUFBSSxFQUFFLENBQUM7Q0FDQyxDQUFDO0FBRVgsMkZBQTJGO0FBQzlFLFFBQUEsMkNBQTJDLEdBQUc7SUFDekQsUUFBUSxFQUFFLENBQUM7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLE1BQU0sRUFBRSxDQUFDO0lBQ1QsS0FBSyxFQUFFLENBQUM7SUFDUixVQUFVLEVBQUUsQ0FBQztJQUNiLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLGdGQUFnRjtBQUNuRSxRQUFBLGtDQUFrQyxHQUFHO0lBQ2hELFFBQVEsRUFBRSxDQUFDO0lBQ1gsSUFBSSxFQUFFLENBQUM7Q0FDQyxDQUFDO0FBRVgsd0VBQXdFO0FBQzNELFFBQUEseUJBQXlCLEdBQUc7SUFDdkMsZ0NBQWdDLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEVBQUUsQ0FBQztDQUNDLENBQUM7QUFFWCx3RUFBd0U7QUFDM0QsUUFBQSwwQkFBMEIsR0FBRztJQUN4QywyQkFBMkIsRUFBRSxDQUFDO0NBQ3RCLENBQUM7QUFFRSxRQUFBLHVCQUF1QixHQUFHLHFCQUFxQixDQUFDO0FBQ2hELFFBQUEsb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7QUFDMUMsUUFBQSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkSW5zdHJ1Y3Rpb25UeXBlcyB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY29uc3QgTUVNT19QUk9HUkFNX1BLID0gJ01lbW9TcTRncUFCQVhLYjk2cW5IOFR5c05jV3hNeVdDcVhnRExHbWZjSHInO1xuXG5leHBvcnQgY29uc3QgU0VFRF9MRU5HVEggPSAzMjtcblxuZXhwb3J0IGNvbnN0IE1BWF9NRU1PX0xFTkdUSCA9IDEzMDtcbmV4cG9ydCBjb25zdCBTVEFLRV9BQ0NPVU5UX1JFTlRfRVhFTVBUX0FNT1VOVCA9IDIyODI4ODA7XG5cbmV4cG9ydCBjb25zdCBVTkFWQUlMQUJMRV9URVhUID0gJ1VOQVZBSUxBQkxFJztcblxuLy8gU2RrIGluc3RydWN0aW9ucywgbWFpbmx5IHRvIGNoZWNrIGRlY29kZWQgdHlwZXMuXG5leHBvcnQgZW51bSBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtIHtcbiAgQWR2YW5jZU5vbmNlQWNjb3VudCA9ICdBZHZhbmNlTm9uY2VBY2NvdW50JyxcbiAgQ3JlYXRlID0gJ0NyZWF0ZScsXG4gIEluaXRpYWxpemVOb25jZUFjY291bnQgPSAnSW5pdGlhbGl6ZU5vbmNlQWNjb3VudCcsXG4gIFN0YWtpbmdJbml0aWFsaXplID0gJ0luaXRpYWxpemUnLFxuICBTdGFraW5nRGVsZWdhdGUgPSAnRGVsZWdhdGUnLFxuICBTdGFraW5nRGVhY3RpdmF0ZSA9ICdEZWFjdGl2YXRlJyxcbiAgU3Rha2luZ1dpdGhkcmF3ID0gJ1dpdGhkcmF3JyxcbiAgVHJhbnNmZXIgPSAnVHJhbnNmZXInLFxuICBUb2tlblRyYW5zZmVyID0gJ1Rva2VuVHJhbnNmZXInLFxuICBNZW1vID0gJ01lbW8nLFxuICBJbml0aWFsaXplQXNzb2NpYXRlZFRva2VuQWNjb3VudCA9ICdJbml0aWFsaXplQXNzb2NpYXRlZFRva2VuQWNjb3VudCcsXG4gIENsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudCA9ICdDbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnLFxuICBBbGxvY2F0ZSA9ICdBbGxvY2F0ZScsXG4gIEFzc2lnbiA9ICdBc3NpZ24nLFxuICBTcGxpdCA9ICdTcGxpdCcsXG4gIEF1dGhvcml6ZSA9ICdBdXRob3JpemUnLFxuICBTZXRQcmlvcml0eUZlZSA9ICdTZXRQcmlvcml0eUZlZScsXG59XG5cbi8vIEludGVybmFsIGluc3RydWN0aW9ucyB0eXBlc1xuZXhwb3J0IGVudW0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMge1xuICBDcmVhdGVOb25jZUFjY291bnQgPSAnQ3JlYXRlTm9uY2VBY2NvdW50JyxcbiAgU3Rha2luZ0FjdGl2YXRlID0gJ0FjdGl2YXRlJyxcbiAgU3Rha2luZ0RlYWN0aXZhdGUgPSAnRGVhY3RpdmF0ZScsXG4gIFN0YWtpbmdXaXRoZHJhdyA9ICdXaXRoZHJhdycsXG4gIFRyYW5zZmVyID0gJ1RyYW5zZmVyJyxcbiAgTWVtbyA9ICdNZW1vJyxcbiAgTm9uY2VBZHZhbmNlID0gJ05vbmNlQWR2YW5jZScsXG4gIENyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQgPSAnQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCcsXG4gIENsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudCA9ICdDbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnLFxuICBUb2tlblRyYW5zZmVyID0gJ1Rva2VuVHJhbnNmZXInLFxuICBTdGFraW5nQXV0aG9yaXplID0gJ0F1dGhvcml6ZScsXG4gIFN0YWtpbmdEZWxlZ2F0ZSA9ICdEZWxlZ2F0ZScsXG4gIFNldFByaW9yaXR5RmVlID0gJ1NldFByaW9yaXR5RmVlJyxcbn1cblxuZXhwb3J0IGNvbnN0IFZBTElEX1NZU1RFTV9JTlNUUlVDVElPTl9UWVBFUzogVmFsaWRJbnN0cnVjdGlvblR5cGVzW10gPSBbXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQWR2YW5jZU5vbmNlQWNjb3VudCxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5DcmVhdGUsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uU3Rha2luZ0luaXRpYWxpemUsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uU3Rha2luZ0RlbGVnYXRlLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlN0YWtpbmdEZWFjdGl2YXRlLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlN0YWtpbmdXaXRoZHJhdyxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5UcmFuc2ZlcixcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5Jbml0aWFsaXplTm9uY2VBY2NvdW50LFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLk1lbW8sXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uSW5pdGlhbGl6ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQ2xvc2VBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlRva2VuVHJhbnNmZXIsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQWxsb2NhdGUsXG4gIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQXNzaWduLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlNwbGl0LFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLkF1dGhvcml6ZSxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5TZXRQcmlvcml0eUZlZSxcbl07XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIFdhbGxldCBJbml0IGluc3RydWN0aW9ucyB3aGVuIGRlY29kZSAqL1xuZXhwb3J0IGNvbnN0IHdhbGxldEluaXRJbnN0cnVjdGlvbkluZGV4ZXMgPSB7XG4gIENyZWF0ZTogMCxcbiAgSW5pdGlhbGl6ZU5vbmNlQWNjb3VudDogMSxcbiAgTWVtbzogMixcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIFN0YWtpbmcgQWN0aXZhdGUgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlICovXG5leHBvcnQgY29uc3Qgc3Rha2luZ0FjdGl2YXRlSW5zdHJ1Y3Rpb25zSW5kZXhlcyA9IHtcbiAgQ3JlYXRlOiAwLFxuICBJbml0aWFsaXplOiAxLFxuICBEZWxlZ2F0ZTogMixcbiAgTWVtbzogMyxcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIE1hcmluYWRlIFN0YWtpbmcgQWN0aXZhdGUgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlICovXG5leHBvcnQgY29uc3QgbWFyaW5hZGVTdGFraW5nQWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzID0ge1xuICBDcmVhdGU6IDAsXG4gIEluaXRpYWxpemU6IDEsXG4gIE1lbW86IDIsXG59IGFzIGNvbnN0O1xuXG4vKiogQ29uc3QgdG8gY2hlY2sgdGhlIG9yZGVyIG9mIHRoZSBTdGFraW5nIEF1dGhvcml6ZSBpbnN0cnVjdGlvbnMgd2hlbiBkZWNvZGUgKi9cbmV4cG9ydCBjb25zdCBzdGFraW5nQXV0aG9yaXplSW5zdHJ1Y3Rpb25zSW5kZXhlcyA9IHtcbiAgQXV0aG9yaXplOiAwLFxufSBhcyBjb25zdDtcblxuLyoqIENvbnN0IHRvIGNoZWNrIHRoZSBvcmRlciBvZiB0aGUgU3Rha2luZyBEZWxlZ2F0ZSBpbnN0cnVjdGlvbnMgd2hlbiBkZWNvZGUgKi9cbmV4cG9ydCBjb25zdCBzdGFraW5nRGVsZWdhdGVJbnN0cnVjdGlvbnNJbmRleGVzID0ge1xuICBEZWxlZ2F0ZTogMCxcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIFN0YWtpbmcgRGVhY3RpdmF0ZSBpbnN0cnVjdGlvbnMgd2hlbiBkZWNvZGUgKi9cbmV4cG9ydCBjb25zdCBzdGFraW5nRGVhY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMgPSB7XG4gIERlYWN0aXZhdGU6IDAsXG4gIE1lbW86IDEsXG59IGFzIGNvbnN0O1xuXG4vKiogQ29uc3QgdG8gY2hlY2sgdGhlIG9yZGVyIG9mIHRoZSBNYXJpbmFkZSBTdGFraW5nIERlYWN0aXZhdGUgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlICovXG5leHBvcnQgY29uc3QgbWFyaW5hZGVTdGFraW5nRGVhY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMgPSB7XG4gIFRyYW5zZmVyOiAwLFxuICBNZW1vOiAxLFxufSBhcyBjb25zdDtcblxuLyoqIENvbnN0IHRvIGNoZWNrIHRoZSBvcmRlciBvZiB0aGUgUGFydGlhbCBTdGFraW5nIERlYWN0aXZhdGUgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlZCAqL1xuZXhwb3J0IGNvbnN0IHN0YWtpbmdQYXJ0aWFsRGVhY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMgPSB7XG4gIFRyYW5zZmVyOiAwLFxuICBBbGxvY2F0ZTogMSxcbiAgQXNzaWduOiAyLFxuICBTcGxpdDogMyxcbiAgRGVhY3RpdmF0ZTogNCxcbiAgTWVtbzogNSxcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIFN0YWtpbmcgV2l0aGRyYXcgaW5zdHJ1Y3Rpb25zIHdoZW4gZGVjb2RlICovXG5leHBvcnQgY29uc3Qgc3Rha2luZ1dpdGhkcmF3SW5zdHJ1Y3Rpb25zSW5kZXhlcyA9IHtcbiAgV2l0aGRyYXc6IDAsXG4gIE1lbW86IDEsXG59IGFzIGNvbnN0O1xuXG4vKiogQ29uc3QgdG8gY2hlY2sgdGhlIG9yZGVyIG9mIHRoZSBBVEEgaW5pdCBpbnN0cnVjdGlvbnMgd2hlbiBkZWNvZGUgKi9cbmV4cG9ydCBjb25zdCBhdGFJbml0SW5zdHJ1Y3Rpb25JbmRleGVzID0ge1xuICBJbml0aWFsaXplQXNzb2NpYXRlZFRva2VuQWNjb3VudDogMCxcbiAgTWVtbzogMSxcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb25zdCB0byBjaGVjayB0aGUgb3JkZXIgb2YgdGhlIEFUQSBpbml0IGluc3RydWN0aW9ucyB3aGVuIGRlY29kZSAqL1xuZXhwb3J0IGNvbnN0IGF0YUNsb3NlSW5zdHJ1Y3Rpb25JbmRleGVzID0ge1xuICBDbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQ6IDAsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3Qgbm9uY2VBZHZhbmNlSW5zdHJ1Y3Rpb24gPSAnQWR2YW5jZU5vbmNlQWNjb3VudCc7XG5leHBvcnQgY29uc3QgdmFsaWRJbnN0cnVjdGlvbkRhdGEgPSAnMGEwMDAwMDAwMTAwMDAwMCc7XG5leHBvcnQgY29uc3QgdmFsaWRJbnN0cnVjdGlvbkRhdGEyID0gJzBhMDAwMDAwMDAwMDAwMDAnO1xuIl19