@bitgo-beta/sdk-coin-apt 0.0.0-semantic-release-managed

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 (78) hide show
  1. package/.eslintignore +4 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +330 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/apt.d.ts +44 -0
  7. package/dist/src/apt.d.ts.map +1 -0
  8. package/dist/src/apt.js +212 -0
  9. package/dist/src/aptNFTCollection.d.ts +18 -0
  10. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  11. package/dist/src/aptNFTCollection.js +52 -0
  12. package/dist/src/aptToken.d.ts +19 -0
  13. package/dist/src/aptToken.d.ts.map +1 -0
  14. package/dist/src/aptToken.js +52 -0
  15. package/dist/src/index.d.ts +7 -0
  16. package/dist/src/index.d.ts.map +1 -0
  17. package/dist/src/index.js +23 -0
  18. package/dist/src/lib/constants.d.ts +21 -0
  19. package/dist/src/lib/constants.d.ts.map +1 -0
  20. package/dist/src/lib/constants.js +24 -0
  21. package/dist/src/lib/iface.d.ts +108 -0
  22. package/dist/src/lib/iface.d.ts.map +1 -0
  23. package/dist/src/lib/iface.js +3 -0
  24. package/dist/src/lib/index.d.ts +16 -0
  25. package/dist/src/lib/index.d.ts.map +1 -0
  26. package/dist/src/lib/index.js +65 -0
  27. package/dist/src/lib/keyPair.d.ts +18 -0
  28. package/dist/src/lib/keyPair.d.ts.map +1 -0
  29. package/dist/src/lib/keyPair.js +44 -0
  30. package/dist/src/lib/transaction/customTransaction.d.ts +54 -0
  31. package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
  32. package/dist/src/lib/transaction/customTransaction.js +228 -0
  33. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
  34. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
  35. package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
  36. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
  37. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
  38. package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
  39. package/dist/src/lib/transaction/transaction.d.ts +81 -0
  40. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  41. package/dist/src/lib/transaction/transaction.js +332 -0
  42. package/dist/src/lib/transaction/transferTransaction.d.ts +12 -0
  43. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction/transferTransaction.js +63 -0
  45. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
  46. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  47. package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
  48. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
  49. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  50. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
  51. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
  52. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
  54. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +68 -0
  55. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  56. package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
  57. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts +13 -0
  58. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  59. package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
  60. package/dist/src/lib/transactionBuilderFactory.d.ts +39 -0
  61. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  62. package/dist/src/lib/transactionBuilderFactory.js +99 -0
  63. package/dist/src/lib/types.d.ts +9 -0
  64. package/dist/src/lib/types.d.ts.map +1 -0
  65. package/dist/src/lib/types.js +3 -0
  66. package/dist/src/lib/utils/validation.d.ts +32 -0
  67. package/dist/src/lib/utils/validation.d.ts.map +1 -0
  68. package/dist/src/lib/utils/validation.js +99 -0
  69. package/dist/src/lib/utils.d.ts +42 -0
  70. package/dist/src/lib/utils.d.ts.map +1 -0
  71. package/dist/src/lib/utils.js +150 -0
  72. package/dist/src/register.d.ts +3 -0
  73. package/dist/src/register.d.ts.map +1 -0
  74. package/dist/src/register.js +19 -0
  75. package/dist/src/tapt.d.ts +17 -0
  76. package/dist/src/tapt.d.ts.map +1 -0
  77. package/dist/src/tapt.js +30 -0
  78. package/package.json +55 -0
@@ -0,0 +1,169 @@
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.TransactionBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const utils_1 = __importDefault(require("../utils"));
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
11
+ constructor(coinConfig) {
12
+ super(coinConfig);
13
+ }
14
+ getRebuiltTransaction() {
15
+ return this._transaction;
16
+ }
17
+ getSequenceNumber() {
18
+ return this.transaction.sequenceNumber;
19
+ }
20
+ /**
21
+ * Initialize the transaction builder fields using the decoded transaction data
22
+ *
23
+ * @param {Transaction} tx the transaction data
24
+ */
25
+ initBuilder(tx) {
26
+ this._transaction = tx;
27
+ }
28
+ /** @inheritdoc */
29
+ get transaction() {
30
+ return this._transaction;
31
+ }
32
+ /** @inheritdoc */
33
+ set transaction(transaction) {
34
+ this._transaction = transaction;
35
+ }
36
+ /**
37
+ * Sets the sender of this transaction.
38
+ *
39
+ * @param {string} senderAddress the account that is sending this transaction
40
+ * @returns {TransactionBuilder} This transaction builder
41
+ */
42
+ sender(senderAddress) {
43
+ this.validateAddress({ address: senderAddress });
44
+ this.transaction.sender = senderAddress;
45
+ return this;
46
+ }
47
+ /**
48
+ * @deprecated - use `recipients()`.
49
+ */
50
+ recipient(recipient) {
51
+ this.validateAddress({ address: recipient.address });
52
+ this.validateValue(new bignumber_js_1.default(recipient.amount));
53
+ this.transaction.recipients = [recipient];
54
+ return this;
55
+ }
56
+ recipients(recipients) {
57
+ for (const recipient of recipients) {
58
+ this.validateAddress({ address: recipient.address });
59
+ this.validateValue(new bignumber_js_1.default(recipient.amount));
60
+ }
61
+ this.transaction.recipients = recipients;
62
+ return this;
63
+ }
64
+ gasData(gasData) {
65
+ this.validateGasData(gasData);
66
+ this.transaction.maxGasAmount = gasData.maxGasAmount;
67
+ this.transaction.gasUnitPrice = gasData.gasUnitPrice;
68
+ this.transaction.gasUsed = gasData.gasUsed ?? 0;
69
+ return this;
70
+ }
71
+ sequenceNumber(seqNo) {
72
+ this.transaction.sequenceNumber = seqNo;
73
+ return this;
74
+ }
75
+ expirationTime(expTimeSec) {
76
+ this.transaction.expirationTime = expTimeSec;
77
+ return this;
78
+ }
79
+ /** @inheritdoc */
80
+ signImplementation(key) {
81
+ throw new Error('Method not implemented.');
82
+ }
83
+ /** @inheritDoc */
84
+ addSenderSignature(publicKey, signature) {
85
+ this.transaction.addSenderSignature(publicKey, signature);
86
+ }
87
+ addFeePayerSignature(publicKey, signature) {
88
+ this.transaction.addFeePayerSignature(publicKey, signature);
89
+ }
90
+ setIsSimulateTxn(value) {
91
+ this.transaction.isSimulateTxn = value;
92
+ }
93
+ /** @inheritdoc */
94
+ fromImplementation(rawTransaction) {
95
+ this.transaction.fromRawTransaction(rawTransaction);
96
+ this.transaction.transactionType = this.transactionType;
97
+ return this.transaction;
98
+ }
99
+ /** @inheritdoc */
100
+ async buildImplementation() {
101
+ this.transaction.transactionType = this.transactionType;
102
+ await this.transaction.build();
103
+ return this.transaction;
104
+ }
105
+ // region Validators
106
+ /** @inheritdoc */
107
+ validateAddress(address, addressFormat) {
108
+ if (!utils_1.default.isValidAddress(address.address)) {
109
+ throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
110
+ }
111
+ }
112
+ /** @inheritdoc */
113
+ validateKey(key) {
114
+ throw new Error('Method not implemented.');
115
+ }
116
+ /** @inheritdoc */
117
+ validateTransaction(transaction) {
118
+ if (!transaction) {
119
+ throw new Error('transaction not defined');
120
+ }
121
+ this.validateAddress({ address: transaction.sender });
122
+ for (const recipient of transaction.recipients) {
123
+ this.validateAddress({ address: recipient.address });
124
+ this.validateValue(new bignumber_js_1.default(recipient.amount));
125
+ }
126
+ }
127
+ isValidRawTransaction(rawTransaction) {
128
+ try {
129
+ const signedTxn = utils_1.default.deserializeSignedTransaction(rawTransaction);
130
+ const rawTxn = signedTxn.raw_txn;
131
+ const senderAddress = rawTxn.sender.toString();
132
+ return utils_1.default.isValidAddress(senderAddress) && this.isValidTransactionPayload(rawTxn.payload);
133
+ }
134
+ catch (e) {
135
+ console.error('invalid raw transaction', e);
136
+ return false;
137
+ }
138
+ }
139
+ /** @inheritdoc */
140
+ validateRawTransaction(rawTransaction) {
141
+ if (!rawTransaction) {
142
+ throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
143
+ }
144
+ if (!this.isValidRawTransaction(rawTransaction)) {
145
+ throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
146
+ }
147
+ }
148
+ /** @inheritdoc */
149
+ validateValue(value) {
150
+ if (value.isNaN()) {
151
+ throw new sdk_core_1.BuildTransactionError('Invalid amount format');
152
+ }
153
+ else if (value.isLessThan(0)) {
154
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
155
+ }
156
+ }
157
+ validateGasData(gasData) {
158
+ this.validateValue(new bignumber_js_1.default(gasData.maxGasAmount));
159
+ this.validateValue(new bignumber_js_1.default(gasData.gasUnitPrice));
160
+ }
161
+ addFeePayerAddress(address) {
162
+ this.transaction.addFeePayerAddress(address);
163
+ }
164
+ getFeePayerPubKey() {
165
+ return this.transaction.getFeePayerPubKey();
166
+ }
167
+ }
168
+ exports.TransactionBuilder = TransactionBuilder;
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQVM4QjtBQUU5QixxREFBNkI7QUFDN0IsZ0VBQXFDO0FBS3JDLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQUdyRSxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBUUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxhQUFxQjtRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFNBQW9CO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFD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QUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBak1ELGdEQWlNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBHYXNEYXRhIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25QYXlsb2FkIH0gZnJvbSAnQGFwdG9zLWxhYnMvdHMtc2RrJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgLy8gZ2V0IGFuZCBzZXQgcmVnaW9uXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICBnZXRSZWJ1aWx0VHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldFNlcXVlbmNlTnVtYmVyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24uc2VxdWVuY2VOdW1iZXI7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNlbmRlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VuZGVyQWRkcmVzcyB0aGUgYWNjb3VudCB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHNlbmRlcihzZW5kZXJBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHNlbmRlckFkZHJlc3MgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZW5kZXIgPSBzZW5kZXJBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGByZWNpcGllbnRzKClgLlxuICAgKi9cbiAgcmVjaXBpZW50KHJlY2lwaWVudDogUmVjaXBpZW50KTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9KTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihyZWNpcGllbnQuYW1vdW50KSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnRzID0gW3JlY2lwaWVudF07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZWNpcGllbnRzKHJlY2lwaWVudHM6IFJlY2lwaWVudFtdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCByZWNpcGllbnQgb2YgcmVjaXBpZW50cykge1xuICAgICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9KTtcbiAgICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHJlY2lwaWVudC5hbW91bnQpKTtcbiAgICB9XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnRzID0gcmVjaXBpZW50cztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKGdhc0RhdGEpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubWF4R2FzQW1vdW50ID0gZ2FzRGF0YS5tYXhHYXNBbW91bnQ7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5nYXNVbml0UHJpY2UgPSBnYXNEYXRhLmdhc1VuaXRQcmljZTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmdhc1VzZWQgPSBnYXNEYXRhLmdhc1VzZWQgPz8gMDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlcXVlbmNlTnVtYmVyKHNlcU5vOiBudW1iZXIpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2VxdWVuY2VOdW1iZXIgPSBzZXFObztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGV4cGlyYXRpb25UaW1lKGV4cFRpbWVTZWM6IG51bWJlcik6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5leHBpcmF0aW9uVGltZSA9IGV4cFRpbWVTZWM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhYnN0cmFjdCBhc3NldElkKGFzc2V0SWQ6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlcjtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNlbmRlclNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTZW5kZXJTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICB9XG5cbiAgYWRkRmVlUGF5ZXJTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uYWRkRmVlUGF5ZXJTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICB9XG5cbiAgc2V0SXNTaW11bGF0ZVR4bih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uaXNTaW11bGF0ZVR4biA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uLmJ1aWxkKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc1ZhbGlkVHJhbnNhY3Rpb25QYXlsb2FkKHBheWxvYWQ6IFRyYW5zYWN0aW9uUGF5bG9hZCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHJhbnNhY3Rpb24gbm90IGRlZmluZWQnKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5zZW5kZXIgfSk7XG4gICAgZm9yIChjb25zdCByZWNpcGllbnQgb2YgdHJhbnNhY3Rpb24ucmVjaXBpZW50cykge1xuICAgICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9KTtcbiAgICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHJlY2lwaWVudC5hbW91bnQpKTtcbiAgICB9XG4gIH1cblxuICBpc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduZWRUeG4gPSB1dGlscy5kZXNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICAgIGNvbnN0IHJhd1R4biA9IHNpZ25lZFR4bi5yYXdfdHhuO1xuICAgICAgY29uc3Qgc2VuZGVyQWRkcmVzcyA9IHJhd1R4bi5zZW5kZXIudG9TdHJpbmcoKTtcbiAgICAgIHJldHVybiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhzZW5kZXJBZGRyZXNzKSAmJiB0aGlzLmlzVmFsaWRUcmFuc2FjdGlvblBheWxvYWQocmF3VHhuLnBheWxvYWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJywgZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uOiBVbmRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc05hTigpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFtb3VudCBmb3JtYXQnKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVHYXNEYXRhKGdhc0RhdGE6IEdhc0RhdGEpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihnYXNEYXRhLm1heEdhc0Ftb3VudCkpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGdhc0RhdGEuZ2FzVW5pdFByaWNlKSk7XG4gIH1cblxuICBhZGRGZWVQYXllckFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRGZWVQYXllckFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cblxuICBnZXRGZWVQYXllclB1YktleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uLmdldEZlZVBheWVyUHViS2V5KCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { TransactionBuilder } from './transactionBuilder';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { TransactionPayload } from '@aptos-labs/ts-sdk';
5
+ export declare class TransferBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ protected get transactionType(): TransactionType;
8
+ validatePartsOfAssetId(assetId: string): void;
9
+ assetId(assetId: string): TransactionBuilder;
10
+ protected isValidTransactionPayload(payload: TransactionPayload): boolean;
11
+ private isValidPayload;
12
+ }
13
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAmC,MAAM,oBAAoB,CAAC;AAEzF,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO7C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAM5C,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAiBzE,OAAO,CAAC,cAAc;CAQvB"}
@@ -0,0 +1,56 @@
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.TransferBuilder = void 0;
7
+ const transactionBuilder_1 = require("./transactionBuilder");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const transferTransaction_1 = require("../transaction/transferTransaction");
10
+ const utils_1 = __importDefault(require("../utils"));
11
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
12
+ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this.transaction = new transferTransaction_1.TransferTransaction(_coinConfig);
16
+ }
17
+ get transactionType() {
18
+ return sdk_core_1.TransactionType.Send;
19
+ }
20
+ validatePartsOfAssetId(assetId) {
21
+ const parts = assetId.split('::');
22
+ if (parts.length !== 3 || ('0x1' !== parts[0] && !utils_1.default.isValidAddress(parts[0]))) {
23
+ throw new Error('Invalid asset ID');
24
+ }
25
+ }
26
+ assetId(assetId) {
27
+ this.validatePartsOfAssetId(assetId);
28
+ this.transaction.assetId = assetId;
29
+ return this;
30
+ }
31
+ isValidTransactionPayload(payload) {
32
+ try {
33
+ if (!this.isValidPayload(payload)) {
34
+ console.error('invalid transaction payload');
35
+ return false;
36
+ }
37
+ const entryFunction = payload.entryFunction;
38
+ this.validatePartsOfAssetId(entryFunction.type_args[0].toString());
39
+ const addressArg = entryFunction.args[0];
40
+ const amountArg = entryFunction.args[1];
41
+ return utils_1.default.fetchAndValidateRecipients(addressArg, amountArg).isValid;
42
+ }
43
+ catch (e) {
44
+ console.error('invalid transaction payload', e);
45
+ return false;
46
+ }
47
+ }
48
+ isValidPayload(payload) {
49
+ return (payload instanceof ts_sdk_1.TransactionPayloadEntryFunction &&
50
+ payload.entryFunction.args.length === 2 &&
51
+ payload.entryFunction.type_args.length === 1 &&
52
+ payload.entryFunction.type_args[0].toString().length > 0);
53
+ }
54
+ }
55
+ exports.TransferBuilder = TransferBuilder;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDZEQUEwRDtBQUUxRCxtREFBdUQ7QUFDdkQsNEVBQXlFO0FBQ3pFLHFEQUE2QjtBQUM3QiwrQ0FBeUY7QUFFekYsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUNyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUNBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFlO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZTtRQUNyQixJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVTLHlCQUF5QixDQUFDLE9BQTJCO1FBQzdELElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDN0MsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsTUFBTSxhQUFhLEdBQUksT0FBMkMsQ0FBQyxhQUFhLENBQUM7WUFDakYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsT0FBTyxlQUFLLENBQUMsMEJBQTBCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN6RSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUEyQjtRQUNoRCxPQUFPLENBQ0wsT0FBTyxZQUFZLHdDQUErQjtZQUNsRCxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN2QyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUM1QyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaERELDBDQWdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbi90cmFuc2ZlclRyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblBheWxvYWQsIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24gfSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNmZXJUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIHZhbGlkYXRlUGFydHNPZkFzc2V0SWQoYXNzZXRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGFydHMgPSBhc3NldElkLnNwbGl0KCc6OicpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgfHwgKCcweDEnICE9PSBwYXJ0c1swXSAmJiAhdXRpbHMuaXNWYWxpZEFkZHJlc3MocGFydHNbMF0pKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFzc2V0IElEJyk7XG4gICAgfVxuICB9XG5cbiAgYXNzZXRJZChhc3NldElkOiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudmFsaWRhdGVQYXJ0c09mQXNzZXRJZChhc3NldElkKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmFzc2V0SWQgPSBhc3NldElkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVmFsaWRUcmFuc2FjdGlvblBheWxvYWQocGF5bG9hZDogVHJhbnNhY3Rpb25QYXlsb2FkKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkUGF5bG9hZChwYXlsb2FkKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uIHBheWxvYWQnKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3QgZW50cnlGdW5jdGlvbiA9IChwYXlsb2FkIGFzIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24pLmVudHJ5RnVuY3Rpb247XG4gICAgICB0aGlzLnZhbGlkYXRlUGFydHNPZkFzc2V0SWQoZW50cnlGdW5jdGlvbi50eXBlX2FyZ3NbMF0udG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCBhZGRyZXNzQXJnID0gZW50cnlGdW5jdGlvbi5hcmdzWzBdO1xuICAgICAgY29uc3QgYW1vdW50QXJnID0gZW50cnlGdW5jdGlvbi5hcmdzWzFdO1xuICAgICAgcmV0dXJuIHV0aWxzLmZldGNoQW5kVmFsaWRhdGVSZWNpcGllbnRzKGFkZHJlc3NBcmcsIGFtb3VudEFyZykuaXNWYWxpZDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uIHBheWxvYWQnLCBlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRQYXlsb2FkKHBheWxvYWQ6IFRyYW5zYWN0aW9uUGF5bG9hZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBwYXlsb2FkIGluc3RhbmNlb2YgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbiAmJlxuICAgICAgcGF5bG9hZC5lbnRyeUZ1bmN0aW9uLmFyZ3MubGVuZ3RoID09PSAyICYmXG4gICAgICBwYXlsb2FkLmVudHJ5RnVuY3Rpb24udHlwZV9hcmdzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgcGF5bG9hZC5lbnRyeUZ1bmN0aW9uLnR5cGVfYXJnc1swXS50b1N0cmluZygpLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { BaseTransactionBuilderFactory, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder/transactionBuilder';
3
+ import { TransferBuilder } from './transactionBuilder/transferBuilder';
4
+ import { Transaction } from './transaction/transaction';
5
+ import { SignedTransaction } from '@aptos-labs/ts-sdk';
6
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
7
+ import { FungibleAssetTransferBuilder } from './transactionBuilder/fungibleAssetTransferBuilder';
8
+ import { DigitalAssetTransferBuilder } from './transactionBuilder/digitalAssetTransferBuilder';
9
+ import { CustomTransactionBuilder } from './transactionBuilder/customTransactionBuilder';
10
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
11
+ constructor(_coinConfig: Readonly<CoinConfig>);
12
+ /** @inheritdoc */
13
+ from(signedRawTxn: string, abi?: any): TransactionBuilder;
14
+ getTransactionTypeFromSignedTxn(signedTxn: SignedTransaction): TransactionType;
15
+ /** @inheritdoc */
16
+ getTransferBuilder(tx?: Transaction): TransferBuilder;
17
+ /** @inheritdoc */
18
+ getFungibleAssetTransactionBuilder(tx?: Transaction): FungibleAssetTransferBuilder;
19
+ /** @inheritdoc */
20
+ getDigitalAssetTransactionBuilder(tx?: Transaction): DigitalAssetTransferBuilder;
21
+ /**
22
+ * Get a custom transaction builder
23
+ *
24
+ * @param tx - Optional transaction to initialize the builder with
25
+ * @returns A custom transaction builder
26
+ */
27
+ getCustomTransactionBuilder(tx?: Transaction): CustomTransactionBuilder;
28
+ /** @inheritdoc */
29
+ getWalletInitializationBuilder(): void;
30
+ /**
31
+ * Initialize the builder with the given transaction
32
+ *
33
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
34
+ * @param {TransactionBuilder} builder - the builder to be initialized
35
+ * @returns {TransactionBuilder} the builder initialized
36
+ */
37
+ private initializeBuilder;
38
+ }
39
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AAEjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAE/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,kBAAkB;IAiCzD,+BAA+B,CAAC,SAAS,EAAE,iBAAiB,GAAG,eAAe;IAK9E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB;IAClB,kCAAkC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,4BAA4B;IAIlF,kBAAkB;IAClB,iCAAiC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAIhF;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIvE,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;CAM1B"}
@@ -0,0 +1,99 @@
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.TransactionBuilderFactory = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const transferBuilder_1 = require("./transactionBuilder/transferBuilder");
9
+ const utils_1 = __importDefault(require("./utils"));
10
+ const transaction_1 = require("./transaction/transaction");
11
+ const transferTransaction_1 = require("./transaction/transferTransaction");
12
+ const fungibleAssetTransfer_1 = require("./transaction/fungibleAssetTransfer");
13
+ const fungibleAssetTransferBuilder_1 = require("./transactionBuilder/fungibleAssetTransferBuilder");
14
+ const digitalAssetTransfer_1 = require("./transaction/digitalAssetTransfer");
15
+ const digitalAssetTransferBuilder_1 = require("./transactionBuilder/digitalAssetTransferBuilder");
16
+ const customTransaction_1 = require("./transaction/customTransaction");
17
+ const customTransactionBuilder_1 = require("./transactionBuilder/customTransactionBuilder");
18
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
19
+ constructor(_coinConfig) {
20
+ super(_coinConfig);
21
+ }
22
+ /** @inheritdoc */
23
+ from(signedRawTxn, abi) {
24
+ try {
25
+ const signedTxn = transaction_1.Transaction.deserializeSignedTransaction(signedRawTxn);
26
+ const txnType = this.getTransactionTypeFromSignedTxn(signedTxn);
27
+ switch (txnType) {
28
+ case sdk_core_1.TransactionType.Send:
29
+ const transferTx = new transferTransaction_1.TransferTransaction(this._coinConfig);
30
+ transferTx.fromDeserializedSignedTransaction(signedTxn);
31
+ return this.getTransferBuilder(transferTx);
32
+ case sdk_core_1.TransactionType.SendToken:
33
+ const fungibleTransferTokenTx = new fungibleAssetTransfer_1.FungibleAssetTransfer(this._coinConfig);
34
+ fungibleTransferTokenTx.fromDeserializedSignedTransaction(signedTxn);
35
+ return this.getFungibleAssetTransactionBuilder(fungibleTransferTokenTx);
36
+ case sdk_core_1.TransactionType.SendNFT:
37
+ const digitalAssetTransferTx = new digitalAssetTransfer_1.DigitalAssetTransfer(this._coinConfig);
38
+ digitalAssetTransferTx.fromDeserializedSignedTransaction(signedTxn);
39
+ return this.getDigitalAssetTransactionBuilder(digitalAssetTransferTx);
40
+ case sdk_core_1.TransactionType.CustomTx:
41
+ const customTx = new customTransaction_1.CustomTransaction(this._coinConfig);
42
+ if (abi) {
43
+ customTx.setEntryFunctionAbi(abi);
44
+ }
45
+ customTx.fromDeserializedSignedTransaction(signedTxn);
46
+ return this.getCustomTransactionBuilder(customTx);
47
+ default:
48
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
49
+ }
50
+ }
51
+ catch (e) {
52
+ throw e;
53
+ }
54
+ }
55
+ getTransactionTypeFromSignedTxn(signedTxn) {
56
+ const rawTxn = signedTxn.raw_txn;
57
+ return utils_1.default.getTransactionTypeFromTransactionPayload(rawTxn.payload);
58
+ }
59
+ /** @inheritdoc */
60
+ getTransferBuilder(tx) {
61
+ return this.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
62
+ }
63
+ /** @inheritdoc */
64
+ getFungibleAssetTransactionBuilder(tx) {
65
+ return this.initializeBuilder(tx, new fungibleAssetTransferBuilder_1.FungibleAssetTransferBuilder(this._coinConfig));
66
+ }
67
+ /** @inheritdoc */
68
+ getDigitalAssetTransactionBuilder(tx) {
69
+ return this.initializeBuilder(tx, new digitalAssetTransferBuilder_1.DigitalAssetTransferBuilder(this._coinConfig));
70
+ }
71
+ /**
72
+ * Get a custom transaction builder
73
+ *
74
+ * @param tx - Optional transaction to initialize the builder with
75
+ * @returns A custom transaction builder
76
+ */
77
+ getCustomTransactionBuilder(tx) {
78
+ return this.initializeBuilder(tx, new customTransactionBuilder_1.CustomTransactionBuilder(this._coinConfig));
79
+ }
80
+ /** @inheritdoc */
81
+ getWalletInitializationBuilder() {
82
+ throw new Error('Method not implemented.');
83
+ }
84
+ /**
85
+ * Initialize the builder with the given transaction
86
+ *
87
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
88
+ * @param {TransactionBuilder} builder - the builder to be initialized
89
+ * @returns {TransactionBuilder} the builder initialized
90
+ */
91
+ initializeBuilder(tx, builder) {
92
+ if (tx) {
93
+ builder.initBuilder(tx);
94
+ }
95
+ return builder;
96
+ }
97
+ }
98
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBK0c7QUFFL0csMEVBQXVFO0FBQ3ZFLG9EQUE0QjtBQUM1QiwyREFBd0Q7QUFFeEQsMkVBQXdFO0FBRXhFLCtFQUE0RTtBQUM1RSxvR0FBaUc7QUFDakcsNkVBQTBFO0FBQzFFLGtHQUErRjtBQUMvRix1RUFBb0U7QUFDcEUsNEZBQXlGO0FBRXpGLE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLFlBQW9CLEVBQUUsR0FBUztRQUNsQyxJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyx5QkFBVyxDQUFDLDRCQUE0QixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVoRSxRQUFRLE9BQU8sRUFBRSxDQUFDO2dCQUNoQixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzdELFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDeEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLEtBQUssMEJBQWUsQ0FBQyxTQUFTO29CQUM1QixNQUFNLHVCQUF1QixHQUFHLElBQUksNkNBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUM1RSx1QkFBdUIsQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDckUsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnQkFDMUUsS0FBSywwQkFBZSxDQUFDLE9BQU87b0JBQzFCLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzFFLHNCQUFzQixDQUFDLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNwRSxPQUFPLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUN4RSxLQUFLLDBCQUFlLENBQUMsUUFBUTtvQkFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3pELElBQUksR0FBRyxFQUFFLENBQUM7d0JBQ1IsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNwQyxDQUFDO29CQUNELFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDdEQsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BEO29CQUNFLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzdELENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxTQUE0QjtRQUMxRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ2pDLE9BQU8sZUFBSyxDQUFDLHdDQUF3QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQ0FBa0MsQ0FBQyxFQUFnQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSwyREFBNEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlDQUFpQyxDQUFDLEVBQWdCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlEQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDJCQUEyQixDQUFDLEVBQWdCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLG1EQUF3QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBdkZELDhEQXVGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuaW1wb3J0IHsgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vdHJhbnNmZXJUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBGdW5naWJsZUFzc2V0VHJhbnNmZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uL2Z1bmdpYmxlQXNzZXRUcmFuc2Zlcic7XG5pbXBvcnQgeyBGdW5naWJsZUFzc2V0VHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvZnVuZ2libGVBc3NldFRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBEaWdpdGFsQXNzZXRUcmFuc2ZlciB9IGZyb20gJy4vdHJhbnNhY3Rpb24vZGlnaXRhbEFzc2V0VHJhbnNmZXInO1xuaW1wb3J0IHsgRGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvZGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IEN1c3RvbVRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi9jdXN0b21UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9jdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20oc2lnbmVkUmF3VHhuOiBzdHJpbmcsIGFiaT86IGFueSk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNpZ25lZFR4biA9IFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkUmF3VHhuKTtcbiAgICAgIGNvbnN0IHR4blR5cGUgPSB0aGlzLmdldFRyYW5zYWN0aW9uVHlwZUZyb21TaWduZWRUeG4oc2lnbmVkVHhuKTtcblxuICAgICAgc3dpdGNoICh0eG5UeXBlKSB7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgICAgY29uc3QgdHJhbnNmZXJUeCA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIHRyYW5zZmVyVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4bik7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKHRyYW5zZmVyVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW46XG4gICAgICAgICAgY29uc3QgZnVuZ2libGVUcmFuc2ZlclRva2VuVHggPSBuZXcgRnVuZ2libGVBc3NldFRyYW5zZmVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIGZ1bmdpYmxlVHJhbnNmZXJUb2tlblR4LmZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeG4pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldEZ1bmdpYmxlQXNzZXRUcmFuc2FjdGlvbkJ1aWxkZXIoZnVuZ2libGVUcmFuc2ZlclRva2VuVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kTkZUOlxuICAgICAgICAgIGNvbnN0IGRpZ2l0YWxBc3NldFRyYW5zZmVyVHggPSBuZXcgRGlnaXRhbEFzc2V0VHJhbnNmZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgZGlnaXRhbEFzc2V0VHJhbnNmZXJUeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHhuKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXREaWdpdGFsQXNzZXRUcmFuc2FjdGlvbkJ1aWxkZXIoZGlnaXRhbEFzc2V0VHJhbnNmZXJUeCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4OlxuICAgICAgICAgIGNvbnN0IGN1c3RvbVR4ID0gbmV3IEN1c3RvbVRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIGlmIChhYmkpIHtcbiAgICAgICAgICAgIGN1c3RvbVR4LnNldEVudHJ5RnVuY3Rpb25BYmkoYWJpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VzdG9tVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4bik7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyKGN1c3RvbVR4KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uVHlwZUZyb21TaWduZWRUeG4oc2lnbmVkVHhuOiBTaWduZWRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgY29uc3QgcmF3VHhuID0gc2lnbmVkVHhuLnJhd190eG47XG4gICAgcmV0dXJuIHV0aWxzLmdldFRyYW5zYWN0aW9uVHlwZUZyb21UcmFuc2FjdGlvblBheWxvYWQocmF3VHhuLnBheWxvYWQpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0RnVuZ2libGVBc3NldFRyYW5zYWN0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogRnVuZ2libGVBc3NldFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBGdW5naWJsZUFzc2V0VHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXREaWdpdGFsQXNzZXRUcmFuc2FjdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IERpZ2l0YWxBc3NldFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBEaWdpdGFsQXNzZXRUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGN1c3RvbSB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqXG4gICAqIEBwYXJhbSB0eCAtIE9wdGlvbmFsIHRyYW5zYWN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aFxuICAgKiBAcmV0dXJucyBBIGN1c3RvbSB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBnZXRDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IEN1c3RvbVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export interface ExplainTransactionOptions {
2
+ txHex: string;
3
+ }
4
+ export type GasData = {
5
+ maxGasAmount: number;
6
+ gasUnitPrice: number;
7
+ gasUsed?: number;
8
+ };
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEV4cGxhaW5UcmFuc2FjdGlvbk9wdGlvbnMge1xuICB0eEhleDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBHYXNEYXRhID0ge1xuICBtYXhHYXNBbW91bnQ6IG51bWJlcjtcbiAgZ2FzVW5pdFByaWNlOiBudW1iZXI7XG4gIGdhc1VzZWQ/OiBudW1iZXI7XG59O1xuIl19
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Validation utilities for Aptos transactions
3
+ */
4
+ /**
5
+ * Validate module name format (throwing version)
6
+ *
7
+ * @param {string} moduleName - Module name to validate
8
+ * @throws {Error} If module name format is invalid
9
+ */
10
+ export declare function validateModuleName(moduleName: string): void;
11
+ /**
12
+ * Validate function name format (throwing version)
13
+ *
14
+ * @param {string} functionName - Function name to validate
15
+ * @throws {Error} If function name format is invalid
16
+ */
17
+ export declare function validateFunctionName(functionName: string): void;
18
+ /**
19
+ * Check if a module name matches the expected pattern (non-throwing version)
20
+ *
21
+ * @param {string} moduleName - Module name to check
22
+ * @returns {boolean} True if valid, false otherwise
23
+ */
24
+ export declare function isValidModuleName(moduleName: string): boolean;
25
+ /**
26
+ * Check if a function name matches the expected pattern (non-throwing version)
27
+ *
28
+ * @param {string} functionName - Function name to check
29
+ * @returns {boolean} True if valid, false otherwise
30
+ */
31
+ export declare function isValidFunctionName(functionName: string): boolean;
32
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4DH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEjE"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /**
3
+ * Validation utilities for Aptos transactions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateModuleName = validateModuleName;
7
+ exports.validateFunctionName = validateFunctionName;
8
+ exports.isValidModuleName = isValidModuleName;
9
+ exports.isValidFunctionName = isValidFunctionName;
10
+ /**
11
+ * Core validation logic for module names
12
+ *
13
+ * @param {string} moduleName - Module name to validate
14
+ * @returns {ValidationResult} Validation result with isValid flag and optional error message
15
+ */
16
+ function validateModuleNameCore(moduleName) {
17
+ if (!moduleName || typeof moduleName !== 'string') {
18
+ return {
19
+ isValid: false,
20
+ errorMessage: 'Module name is required and must be a non-empty string',
21
+ };
22
+ }
23
+ // Aptos module name format: address::module_name
24
+ // Supports both SHORT (0x1) and LONG (0x0000...0001) address formats
25
+ const moduleNamePattern = /^0x[a-fA-F0-9]{1,64}::[a-zA-Z_][a-zA-Z0-9_]*$/;
26
+ if (!moduleNamePattern.test(moduleName)) {
27
+ return {
28
+ isValid: false,
29
+ errorMessage: `Invalid module name format: "${moduleName}". Expected format: "0xaddress::module_name" (hex addresses only)`,
30
+ };
31
+ }
32
+ return { isValid: true };
33
+ }
34
+ /**
35
+ * Core validation logic for function names
36
+ *
37
+ * @param {string} functionName - Function name to validate
38
+ * @returns {ValidationResult} Validation result with isValid flag and optional error message
39
+ */
40
+ function validateFunctionNameCore(functionName) {
41
+ if (!functionName || typeof functionName !== 'string') {
42
+ return {
43
+ isValid: false,
44
+ errorMessage: 'Function name is required and must be a non-empty string',
45
+ };
46
+ }
47
+ // Aptos function name pattern: valid identifier (letters, numbers, underscores, starting with letter/underscore)
48
+ const functionNamePattern = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
49
+ if (!functionNamePattern.test(functionName)) {
50
+ return {
51
+ isValid: false,
52
+ errorMessage: `Invalid function name format: "${functionName}". Function names must be valid identifiers (letters, numbers, underscores, starting with letter or underscore)`,
53
+ };
54
+ }
55
+ return { isValid: true };
56
+ }
57
+ /**
58
+ * Validate module name format (throwing version)
59
+ *
60
+ * @param {string} moduleName - Module name to validate
61
+ * @throws {Error} If module name format is invalid
62
+ */
63
+ function validateModuleName(moduleName) {
64
+ const result = validateModuleNameCore(moduleName);
65
+ if (!result.isValid) {
66
+ throw new Error(result.errorMessage);
67
+ }
68
+ }
69
+ /**
70
+ * Validate function name format (throwing version)
71
+ *
72
+ * @param {string} functionName - Function name to validate
73
+ * @throws {Error} If function name format is invalid
74
+ */
75
+ function validateFunctionName(functionName) {
76
+ const result = validateFunctionNameCore(functionName);
77
+ if (!result.isValid) {
78
+ throw new Error(result.errorMessage);
79
+ }
80
+ }
81
+ /**
82
+ * Check if a module name matches the expected pattern (non-throwing version)
83
+ *
84
+ * @param {string} moduleName - Module name to check
85
+ * @returns {boolean} True if valid, false otherwise
86
+ */
87
+ function isValidModuleName(moduleName) {
88
+ return validateModuleNameCore(moduleName).isValid;
89
+ }
90
+ /**
91
+ * Check if a function name matches the expected pattern (non-throwing version)
92
+ *
93
+ * @param {string} functionName - Function name to check
94
+ * @returns {boolean} True if valid, false otherwise
95
+ */
96
+ function isValidFunctionName(functionName) {
97
+ return validateFunctionNameCore(functionName).isValid;
98
+ }
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7O0FBa0VILGdEQUtDO0FBUUQsb0RBS0M7QUFRRCw4Q0FFQztBQVFELGtEQUVDO0FBakdEOzs7OztHQUtHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxVQUFrQjtJQUNoRCxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2xELE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSx3REFBd0Q7U0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFRCxpREFBaUQ7SUFDakQscUVBQXFFO0lBQ3JFLE1BQU0saUJBQWlCLEdBQUcsK0NBQStDLENBQUM7SUFDMUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSxnQ0FBZ0MsVUFBVSxtRUFBbUU7U0FDNUgsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsd0JBQXdCLENBQUMsWUFBb0I7SUFDcEQsSUFBSSxDQUFDLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN0RCxPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUs7WUFDZCxZQUFZLEVBQUUsMERBQTBEO1NBQ3pFLENBQUM7SUFDSixDQUFDO0lBRUQsaUhBQWlIO0lBQ2pILE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUM7SUFDdkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSxrQ0FBa0MsWUFBWSxpSEFBaUg7U0FDOUssQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLFVBQWtCO0lBQ25ELE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLFlBQW9CO0lBQ3ZELE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFVBQWtCO0lBQ2xELE9BQU8sc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLFlBQW9CO0lBQ3RELE9BQU8sd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZhbGlkYXRpb24gdXRpbGl0aWVzIGZvciBBcHRvcyB0cmFuc2FjdGlvbnNcbiAqL1xuXG5pbnRlcmZhY2UgVmFsaWRhdGlvblJlc3VsdCB7XG4gIGlzVmFsaWQ6IGJvb2xlYW47XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb3JlIHZhbGlkYXRpb24gbG9naWMgZm9yIG1vZHVsZSBuYW1lc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGVOYW1lIC0gTW9kdWxlIG5hbWUgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtWYWxpZGF0aW9uUmVzdWx0fSBWYWxpZGF0aW9uIHJlc3VsdCB3aXRoIGlzVmFsaWQgZmxhZyBhbmQgb3B0aW9uYWwgZXJyb3IgbWVzc2FnZVxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZU1vZHVsZU5hbWVDb3JlKG1vZHVsZU5hbWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIW1vZHVsZU5hbWUgfHwgdHlwZW9mIG1vZHVsZU5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnTW9kdWxlIG5hbWUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gQXB0b3MgbW9kdWxlIG5hbWUgZm9ybWF0OiBhZGRyZXNzOjptb2R1bGVfbmFtZVxuICAvLyBTdXBwb3J0cyBib3RoIFNIT1JUICgweDEpIGFuZCBMT05HICgweDAwMDAuLi4wMDAxKSBhZGRyZXNzIGZvcm1hdHNcbiAgY29uc3QgbW9kdWxlTmFtZVBhdHRlcm4gPSAvXjB4W2EtZkEtRjAtOV17MSw2NH06OlthLXpBLVpfXVthLXpBLVowLTlfXSokLztcbiAgaWYgKCFtb2R1bGVOYW1lUGF0dGVybi50ZXN0KG1vZHVsZU5hbWUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlOiBgSW52YWxpZCBtb2R1bGUgbmFtZSBmb3JtYXQ6IFwiJHttb2R1bGVOYW1lfVwiLiBFeHBlY3RlZCBmb3JtYXQ6IFwiMHhhZGRyZXNzOjptb2R1bGVfbmFtZVwiIChoZXggYWRkcmVzc2VzIG9ubHkpYCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIENvcmUgdmFsaWRhdGlvbiBsb2dpYyBmb3IgZnVuY3Rpb24gbmFtZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gRnVuY3Rpb24gbmFtZSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge1ZhbGlkYXRpb25SZXN1bHR9IFZhbGlkYXRpb24gcmVzdWx0IHdpdGggaXNWYWxpZCBmbGFnIGFuZCBvcHRpb25hbCBlcnJvciBtZXNzYWdlXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlRnVuY3Rpb25OYW1lQ29yZShmdW5jdGlvbk5hbWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIWZ1bmN0aW9uTmFtZSB8fCB0eXBlb2YgZnVuY3Rpb25OYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7XG4gICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yTWVzc2FnZTogJ0Z1bmN0aW9uIG5hbWUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gQXB0b3MgZnVuY3Rpb24gbmFtZSBwYXR0ZXJuOiB2YWxpZCBpZGVudGlmaWVyIChsZXR0ZXJzLCBudW1iZXJzLCB1bmRlcnNjb3Jlcywgc3RhcnRpbmcgd2l0aCBsZXR0ZXIvdW5kZXJzY29yZSlcbiAgY29uc3QgZnVuY3Rpb25OYW1lUGF0dGVybiA9IC9eW2EtekEtWl9dW2EtekEtWjAtOV9dKiQvO1xuICBpZiAoIWZ1bmN0aW9uTmFtZVBhdHRlcm4udGVzdChmdW5jdGlvbk5hbWUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlOiBgSW52YWxpZCBmdW5jdGlvbiBuYW1lIGZvcm1hdDogXCIke2Z1bmN0aW9uTmFtZX1cIi4gRnVuY3Rpb24gbmFtZXMgbXVzdCBiZSB2YWxpZCBpZGVudGlmaWVycyAobGV0dGVycywgbnVtYmVycywgdW5kZXJzY29yZXMsIHN0YXJ0aW5nIHdpdGggbGV0dGVyIG9yIHVuZGVyc2NvcmUpYCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIG1vZHVsZSBuYW1lIGZvcm1hdCAodGhyb3dpbmcgdmVyc2lvbilcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbW9kdWxlTmFtZSAtIE1vZHVsZSBuYW1lIHRvIHZhbGlkYXRlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgbW9kdWxlIG5hbWUgZm9ybWF0IGlzIGludmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTW9kdWxlTmFtZShtb2R1bGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVNb2R1bGVOYW1lQ29yZShtb2R1bGVOYW1lKTtcbiAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3JNZXNzYWdlKTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIGZ1bmN0aW9uIG5hbWUgZm9ybWF0ICh0aHJvd2luZyB2ZXJzaW9uKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBGdW5jdGlvbiBuYW1lIHRvIHZhbGlkYXRlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgZnVuY3Rpb24gbmFtZSBmb3JtYXQgaXMgaW52YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbk5hbWUoZnVuY3Rpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVGdW5jdGlvbk5hbWVDb3JlKGZ1bmN0aW9uTmFtZSk7XG4gIGlmICghcmVzdWx0LmlzVmFsaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0LmVycm9yTWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIG1vZHVsZSBuYW1lIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHBhdHRlcm4gKG5vbi10aHJvd2luZyB2ZXJzaW9uKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGVOYW1lIC0gTW9kdWxlIG5hbWUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNb2R1bGVOYW1lKG1vZHVsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsaWRhdGVNb2R1bGVOYW1lQ29yZShtb2R1bGVOYW1lKS5pc1ZhbGlkO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZnVuY3Rpb24gbmFtZSBtYXRjaGVzIHRoZSBleHBlY3RlZCBwYXR0ZXJuIChub24tdGhyb3dpbmcgdmVyc2lvbilcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gRnVuY3Rpb24gbmFtZSB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEZ1bmN0aW9uTmFtZShmdW5jdGlvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsaWRhdGVGdW5jdGlvbk5hbWVDb3JlKGZ1bmN0aW9uTmFtZSkuaXNWYWxpZDtcbn1cbiJdfQ==