@bitgo-beta/sdk-coin-polyx 1.0.0-alpha.3 → 1.0.0-alpha.30

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 (62) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/src/lib/batchStakingBuilder.d.ts +78 -0
  3. package/dist/src/lib/batchStakingBuilder.d.ts.map +1 -0
  4. package/dist/src/lib/batchStakingBuilder.js +299 -0
  5. package/dist/src/lib/batchUnstakingBuilder.d.ts +38 -0
  6. package/dist/src/lib/batchUnstakingBuilder.d.ts.map +1 -0
  7. package/dist/src/lib/batchUnstakingBuilder.js +127 -0
  8. package/dist/src/lib/bondExtraBuilder.d.ts +36 -0
  9. package/dist/src/lib/bondExtraBuilder.d.ts.map +1 -0
  10. package/dist/src/lib/bondExtraBuilder.js +101 -0
  11. package/dist/src/lib/constants.d.ts +12 -0
  12. package/dist/src/lib/constants.d.ts.map +1 -0
  13. package/dist/src/lib/constants.js +15 -0
  14. package/dist/src/lib/iface.d.ts +40 -5
  15. package/dist/src/lib/iface.d.ts.map +1 -1
  16. package/dist/src/lib/iface.js +1 -1
  17. package/dist/src/lib/index.d.ts +11 -7
  18. package/dist/src/lib/index.d.ts.map +1 -1
  19. package/dist/src/lib/index.js +34 -36
  20. package/dist/src/lib/registerDidWithCDDBuilder.d.ts +34 -0
  21. package/dist/src/lib/registerDidWithCDDBuilder.d.ts.map +1 -0
  22. package/dist/src/lib/registerDidWithCDDBuilder.js +81 -0
  23. package/dist/src/lib/transaction.d.ts +9 -6
  24. package/dist/src/lib/transaction.d.ts.map +1 -1
  25. package/dist/src/lib/transaction.js +72 -8
  26. package/dist/src/lib/transactionBuilderFactory.d.ts +21 -5
  27. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  28. package/dist/src/lib/transactionBuilderFactory.js +90 -8
  29. package/dist/src/lib/transferBuilder.d.ts +48 -2
  30. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  31. package/dist/src/lib/transferBuilder.js +103 -3
  32. package/dist/src/lib/txnSchema.d.ts +42 -0
  33. package/dist/src/lib/txnSchema.d.ts.map +1 -0
  34. package/dist/src/lib/txnSchema.js +81 -0
  35. package/dist/src/lib/utils.d.ts +7 -14
  36. package/dist/src/lib/utils.d.ts.map +1 -1
  37. package/dist/src/lib/utils.js +30 -24
  38. package/dist/src/lib/withdrawUnbondedBuilder.d.ts +34 -0
  39. package/dist/src/lib/withdrawUnbondedBuilder.d.ts.map +1 -0
  40. package/dist/src/lib/withdrawUnbondedBuilder.js +89 -0
  41. package/dist/src/polyx.d.ts +14 -8
  42. package/dist/src/polyx.d.ts.map +1 -1
  43. package/dist/src/polyx.js +18 -19
  44. package/dist/src/resources/index.d.ts +3 -0
  45. package/dist/src/resources/index.d.ts.map +1 -0
  46. package/dist/src/resources/index.js +19 -0
  47. package/dist/src/resources/mainnet.d.ts +13 -0
  48. package/dist/src/resources/mainnet.d.ts.map +1 -0
  49. package/dist/src/resources/mainnet.js +16 -0
  50. package/dist/src/resources/testnet.d.ts +13 -0
  51. package/dist/src/resources/testnet.d.ts.map +1 -0
  52. package/dist/src/resources/testnet.js +16 -0
  53. package/dist/src/tpolyx.d.ts +7 -0
  54. package/dist/src/tpolyx.d.ts.map +1 -1
  55. package/dist/src/tpolyx.js +11 -1
  56. package/package.json +13 -9
  57. package/dist/src/lib/keyPair.d.ts +0 -12
  58. package/dist/src/lib/keyPair.d.ts.map +0 -1
  59. package/dist/src/lib/keyPair.js +0 -24
  60. package/dist/src/lib/transactionBuilder.d.ts +0 -43
  61. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  62. package/dist/src/lib/transactionBuilder.js +0 -78
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterDidWithCDDBuilder = void 0;
4
+ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
5
+ const txwrapper_core_1 = require("@substrate/txwrapper-core");
6
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
7
+ const txnSchema_1 = require("./txnSchema");
8
+ const transaction_1 = require("./transaction");
9
+ class RegisterDidWithCDDBuilder extends abstract_substrate_1.TransactionBuilder {
10
+ constructor(_coinConfig) {
11
+ super(_coinConfig);
12
+ this._transaction = new transaction_1.Transaction(_coinConfig);
13
+ }
14
+ get transactionType() {
15
+ return sdk_core_1.TransactionType.WalletInitialization;
16
+ }
17
+ buildTransaction() {
18
+ const baseTxInfo = this.createBaseTxInfo();
19
+ return this.RegisterDidWithCDD({
20
+ targetAccount: this._to,
21
+ secondaryKeys: [],
22
+ expiry: null,
23
+ }, baseTxInfo);
24
+ }
25
+ /**
26
+ *
27
+ * The destination address for transfer transaction.
28
+ *
29
+ * @param {string} dest
30
+ * @returns {TransferBuilder} This transfer builder.
31
+ */
32
+ to({ address }) {
33
+ this.validateAddress({ address });
34
+ this._to = address;
35
+ return this;
36
+ }
37
+ /** @inheritdoc */
38
+ fromImplementation(rawTransaction) {
39
+ const tx = super.fromImplementation(rawTransaction);
40
+ if (this._method?.name === abstract_substrate_1.Interface.MethodNames.RegisterDidWithCDD) {
41
+ const txMethod = this._method.args;
42
+ this.to({ address: abstract_substrate_1.utils.decodeSubstrateAddress(txMethod.targetAccount, this.getAddressFormat()) });
43
+ }
44
+ else {
45
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected transferWithMemo`);
46
+ }
47
+ return tx;
48
+ }
49
+ /** @inheritdoc */
50
+ validateDecodedTransaction(decodedTxn, rawTransaction) {
51
+ if (decodedTxn.method?.name === abstract_substrate_1.Interface.MethodNames.RegisterDidWithCDD) {
52
+ const txMethod = decodedTxn.method.args;
53
+ const targetAccount = txMethod.targetAccount;
54
+ const secondaryKeys = txMethod.secondaryKeys;
55
+ const expiry = txMethod.expiry;
56
+ const validationResult = txnSchema_1.RegisterDidWithCDDTransactionSchema.validate({ targetAccount, secondaryKeys, expiry });
57
+ if (validationResult.error) {
58
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction: ${validationResult.error.message}`);
59
+ }
60
+ }
61
+ }
62
+ /**
63
+ * Construct a transaction to register a DID with CDD information
64
+ *
65
+ * @param {RegisterDidWithCDDArgs} args Arguments to be passed to the cddRegisterDidWithCdd method
66
+ * @param {Interface.CreateBaseTxInfo} info Base txn info required to construct the DID registration txn
67
+ * @returns {UnsignedTransaction} an unsigned transaction for DID registration with CDD
68
+ */
69
+ RegisterDidWithCDD(args, info) {
70
+ return (0, txwrapper_core_1.defineMethod)({
71
+ method: {
72
+ args,
73
+ name: 'cddRegisterDidWithCdd',
74
+ pallet: 'identity',
75
+ },
76
+ ...info.baseTxInfo,
77
+ }, info.options);
78
+ }
79
+ }
80
+ exports.RegisterDidWithCDDBuilder = RegisterDidWithCDDBuilder;
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RUFBc0Y7QUFDdEYsOERBQXNIO0FBRXRILG1EQUE2RjtBQUU3RiwyQ0FBa0U7QUFDbEUsK0NBQTRDO0FBRTVDLE1BQWEseUJBQTBCLFNBQVEsdUNBQXlDO0lBSXRGLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQzlDLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQzVCO1lBQ0UsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ3ZCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsRUFDRCxVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQWU7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssOEJBQVMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQThCLENBQUM7WUFDN0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSwwQkFBSyxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEcsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksa0NBQXVCLENBQUMsNkJBQTZCLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2xILENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMEJBQTBCLENBQUMsVUFBbUQsRUFBRSxjQUF1QjtRQUNyRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLDhCQUFTLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDekUsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUE4QixDQUFDO1lBQ2xFLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDN0MsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUM3QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBRS9CLE1BQU0sZ0JBQWdCLEdBQUcsK0NBQW1DLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2hILElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDOUYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssa0JBQWtCLENBQUMsSUFBNEIsRUFBRSxJQUFnQztRQUN2RixPQUFPLElBQUEsNkJBQVksRUFDakI7WUFDRSxNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixNQUFNLEVBQUUsVUFBVTthQUNuQjtZQUNELEdBQUcsSUFBSSxDQUFDLFVBQVU7U0FDbkIsRUFDRCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFyRkQsOERBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyLCBJbnRlcmZhY2UsIHV0aWxzIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBkZWZpbmVNZXRob2QsIFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgQmFzZUFkZHJlc3MsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgUmVnaXN0ZXJEaWRXaXRoQ0REQXJncywgVHhNZXRob2QgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFJlZ2lzdGVyRGlkV2l0aENERFRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI8VHhNZXRob2QsIFRyYW5zYWN0aW9uPiB7XG4gIHByb3RlY3RlZCBfdG86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9tZXRob2Q6IFR4TWV0aG9kO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgcmV0dXJuIHRoaXMuUmVnaXN0ZXJEaWRXaXRoQ0REKFxuICAgICAge1xuICAgICAgICB0YXJnZXRBY2NvdW50OiB0aGlzLl90byxcbiAgICAgICAgc2Vjb25kYXJ5S2V5czogW10sXG4gICAgICAgIGV4cGlyeTogbnVsbCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBmb3IgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0XG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdHJhbnNmZXIgYnVpbGRlci5cbiAgICovXG4gIHRvKHsgYWRkcmVzcyB9OiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLl90byA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuUmVnaXN0ZXJEaWRXaXRoQ0REKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIFJlZ2lzdGVyRGlkV2l0aENEREFyZ3M7XG4gICAgICB0aGlzLnRvKHsgYWRkcmVzczogdXRpbHMuZGVjb2RlU3Vic3RyYXRlQWRkcmVzcyh0eE1ldGhvZC50YXJnZXRBY2NvdW50LCB0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSkgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIHRyYW5zZmVyV2l0aE1lbW9gKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgPT09IEludGVyZmFjZS5NZXRob2ROYW1lcy5SZWdpc3RlckRpZFdpdGhDREQpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyBSZWdpc3RlckRpZFdpdGhDRERBcmdzO1xuICAgICAgY29uc3QgdGFyZ2V0QWNjb3VudCA9IHR4TWV0aG9kLnRhcmdldEFjY291bnQ7XG4gICAgICBjb25zdCBzZWNvbmRhcnlLZXlzID0gdHhNZXRob2Quc2Vjb25kYXJ5S2V5cztcbiAgICAgIGNvbnN0IGV4cGlyeSA9IHR4TWV0aG9kLmV4cGlyeTtcblxuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFJlZ2lzdGVyRGlkV2l0aENERFRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdGFyZ2V0QWNjb3VudCwgc2Vjb25kYXJ5S2V5cywgZXhwaXJ5IH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0IGEgdHJhbnNhY3Rpb24gdG8gcmVnaXN0ZXIgYSBESUQgd2l0aCBDREQgaW5mb3JtYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtSZWdpc3RlckRpZFdpdGhDRERBcmdzfSBhcmdzIEFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8gdGhlIGNkZFJlZ2lzdGVyRGlkV2l0aENkZCBtZXRob2RcbiAgICogQHBhcmFtIHtJbnRlcmZhY2UuQ3JlYXRlQmFzZVR4SW5mb30gaW5mbyBCYXNlIHR4biBpbmZvIHJlcXVpcmVkIHRvIGNvbnN0cnVjdCB0aGUgRElEIHJlZ2lzdHJhdGlvbiB0eG5cbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGZvciBESUQgcmVnaXN0cmF0aW9uIHdpdGggQ0REXG4gICAqL1xuICBwcml2YXRlIFJlZ2lzdGVyRGlkV2l0aENERChhcmdzOiBSZWdpc3RlckRpZFdpdGhDRERBcmdzLCBpbmZvOiBJbnRlcmZhY2UuQ3JlYXRlQmFzZVR4SW5mbyk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBkZWZpbmVNZXRob2QoXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDoge1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgbmFtZTogJ2NkZFJlZ2lzdGVyRGlkV2l0aENkZCcsXG4gICAgICAgICAgcGFsbGV0OiAnaWRlbnRpdHknLFxuICAgICAgICB9LFxuICAgICAgICAuLi5pbmZvLmJhc2VUeEluZm8sXG4gICAgICB9LFxuICAgICAgaW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,8 +1,11 @@
1
- import { BaseKey, BaseTransaction } from '@bitgo-beta/sdk-core';
2
- import { TxData } from './iface';
3
- export declare class Transaction extends BaseTransaction {
4
- canSign(key: BaseKey): boolean;
5
- toBroadcastFormat(): string;
6
- toJson(): TxData;
1
+ import { Transaction as SubstrateTransaction, Interface } from '@bitgo-beta/abstract-substrate';
2
+ export declare class Transaction extends SubstrateTransaction {
3
+ /** @inheritdoc */
4
+ toJson(): Interface.TxData;
5
+ /**
6
+ * Load the input and output data on this transaction.
7
+ */
8
+ loadInputsAndOutputs(): void;
9
+ private decodeInputsAndOutputsForRegisterDidWithCDD;
7
10
  }
8
11
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,iBAAiB,IAAI,MAAM;IAI3B,MAAM,IAAI,MAAM;CAGjB"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,SAAS,EAAkB,MAAM,gCAAgC,CAAC;AAMhH,qBAAa,WAAY,SAAQ,oBAAoB;IACnD,kBAAkB;IAClB,MAAM,IAAI,SAAS,CAAC,MAAM;IAwC1B;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAc5B,OAAO,CAAC,2CAA2C;CAqBpD"}
@@ -1,17 +1,81 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Transaction = void 0;
4
+ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
4
5
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
- class Transaction extends sdk_core_1.BaseTransaction {
6
- canSign(key) {
7
- return false;
6
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
7
+ const keyring_1 = require("@polkadot/keyring");
8
+ class Transaction extends abstract_substrate_1.Transaction {
9
+ /** @inheritdoc */
10
+ toJson() {
11
+ if (!this._substrateTransaction) {
12
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction');
13
+ }
14
+ const decodedTx = (0, txwrapper_polkadot_1.decode)(this._substrateTransaction, {
15
+ metadataRpc: this._substrateTransaction.metadataRpc,
16
+ registry: this._registry,
17
+ isImmortalEra: abstract_substrate_1.utils.isZeroHex(this._substrateTransaction.era),
18
+ });
19
+ const result = {
20
+ id: txwrapper_polkadot_1.construct.txHash(this.toBroadcastFormat()),
21
+ sender: decodedTx.address,
22
+ referenceBlock: decodedTx.blockHash,
23
+ blockNumber: decodedTx.blockNumber,
24
+ genesisHash: decodedTx.genesisHash,
25
+ nonce: decodedTx.nonce,
26
+ specVersion: decodedTx.specVersion,
27
+ transactionVersion: decodedTx.transactionVersion,
28
+ eraPeriod: decodedTx.eraPeriod,
29
+ chainName: this._chainName,
30
+ tip: decodedTx.tip ? Number(decodedTx.tip) : 0,
31
+ };
32
+ const txMethod = decodedTx.method.args;
33
+ if (this.type === sdk_core_1.TransactionType.WalletInitialization) {
34
+ const { targetAccount } = txMethod;
35
+ const keypairDest = new abstract_substrate_1.KeyPair({
36
+ pub: Buffer.from((0, keyring_1.decodeAddress)(targetAccount)).toString('hex'),
37
+ });
38
+ result.to = keypairDest.getAddress(this.getAddressFormat());
39
+ result.amount = '0'; // RegisterDidWithCDD does not transfer any value
40
+ }
41
+ else {
42
+ super.toJson();
43
+ }
44
+ return result;
8
45
  }
9
- toBroadcastFormat() {
10
- throw new Error('Method not implemented.');
46
+ /**
47
+ * Load the input and output data on this transaction.
48
+ */
49
+ loadInputsAndOutputs() {
50
+ super.loadInputsAndOutputs();
51
+ const decodedTx = (0, txwrapper_polkadot_1.decode)(this._substrateTransaction, {
52
+ metadataRpc: this._substrateTransaction.metadataRpc,
53
+ registry: this._registry,
54
+ isImmortalEra: abstract_substrate_1.utils.isZeroHex(this._substrateTransaction.era),
55
+ });
56
+ if (this.type === sdk_core_1.TransactionType.WalletInitialization) {
57
+ this.decodeInputsAndOutputsForRegisterDidWithCDD(decodedTx);
58
+ }
11
59
  }
12
- toJson() {
13
- throw new Error('Method not implemented.');
60
+ decodeInputsAndOutputsForRegisterDidWithCDD(decodedTx) {
61
+ const txMethod = decodedTx.method.args;
62
+ const keypairDest = new abstract_substrate_1.KeyPair({
63
+ pub: Buffer.from((0, keyring_1.decodeAddress)(txMethod.targetAccount)).toString('hex'),
64
+ });
65
+ const to = keypairDest.getAddress(this.getAddressFormat());
66
+ const value = '0';
67
+ const from = decodedTx.address;
68
+ this._inputs.push({
69
+ address: from,
70
+ value,
71
+ coin: this._coinConfig.name,
72
+ });
73
+ this._outputs.push({
74
+ address: to,
75
+ value,
76
+ coin: this._coinConfig.name,
77
+ });
14
78
  }
15
79
  }
16
80
  exports.Transaction = Transaction;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRTtBQUdoRSxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQUM5QyxPQUFPLENBQUMsR0FBWTtRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBWkQsa0NBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb24gfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFnSDtBQUNoSCxtREFBZ0Y7QUFDaEYsc0VBQWtFO0FBQ2xFLCtDQUFrRDtBQUdsRCxNQUFhLFdBQVksU0FBUSxnQ0FBb0I7SUFDbkQsa0JBQWtCO0lBQ2xCLE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLGtDQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUEsMkJBQU0sRUFBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDbkQsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXO1lBQ25ELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN4QixhQUFhLEVBQUUsMEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQztTQUMvRCxDQUF5QixDQUFDO1FBRTNCLE1BQU0sTUFBTSxHQUFxQjtZQUMvQixFQUFFLEVBQUUsOEJBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDOUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQ3pCLGNBQWMsRUFBRSxTQUFTLENBQUMsU0FBUztZQUNuQyxXQUFXLEVBQUUsU0FBUyxDQUFDLFdBQVc7WUFDbEMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXO1lBQ2xDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztZQUN0QixXQUFXLEVBQUUsU0FBUyxDQUFDLFdBQVc7WUFDbEMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQjtZQUNoRCxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7WUFDOUIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzFCLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9DLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssMEJBQWUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxRQUFrQyxDQUFDO1lBQzdELE1BQU0sV0FBVyxHQUFHLElBQUksNEJBQU8sQ0FBQztnQkFDOUIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBQSx1QkFBYSxFQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUMvRCxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUM1RCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLGlEQUFpRDtRQUN4RSxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2xCLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTdCLE1BQU0sU0FBUyxHQUFHLElBQUEsMkJBQU0sRUFBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDbkQsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXO1lBQ25ELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN4QixhQUFhLEVBQUUsMEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQztTQUMvRCxDQUF5QixDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSywwQkFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRU8sMkNBQTJDLENBQUMsU0FBb0I7UUFDdEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUE4QixDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLElBQUksNEJBQU8sQ0FBQztZQUM5QixHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLHVCQUFhLEVBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUN4RSxDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFFL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtTQUM1QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixPQUFPLEVBQUUsRUFBRTtZQUNYLEtBQUs7WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhGRCxrQ0FnRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBTdWJzdHJhdGVUcmFuc2FjdGlvbiwgSW50ZXJmYWNlLCB1dGlscywgS2V5UGFpciB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29uc3RydWN0LCBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBkZWNvZGVBZGRyZXNzIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcnO1xuaW1wb3J0IHsgRGVjb2RlZFR4LCBSZWdpc3RlckRpZFdpdGhDRERBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIFN1YnN0cmF0ZVRyYW5zYWN0aW9uIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBJbnRlcmZhY2UuVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZGVjb2RlKHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICBpc0ltbW9ydGFsRXJhOiB1dGlscy5pc1plcm9IZXgodGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24uZXJhKSxcbiAgICB9KSBhcyB1bmtub3duIGFzIERlY29kZWRUeDtcblxuICAgIGNvbnN0IHJlc3VsdDogSW50ZXJmYWNlLlR4RGF0YSA9IHtcbiAgICAgIGlkOiBjb25zdHJ1Y3QudHhIYXNoKHRoaXMudG9Ccm9hZGNhc3RGb3JtYXQoKSksXG4gICAgICBzZW5kZXI6IGRlY29kZWRUeC5hZGRyZXNzLFxuICAgICAgcmVmZXJlbmNlQmxvY2s6IGRlY29kZWRUeC5ibG9ja0hhc2gsXG4gICAgICBibG9ja051bWJlcjogZGVjb2RlZFR4LmJsb2NrTnVtYmVyLFxuICAgICAgZ2VuZXNpc0hhc2g6IGRlY29kZWRUeC5nZW5lc2lzSGFzaCxcbiAgICAgIG5vbmNlOiBkZWNvZGVkVHgubm9uY2UsXG4gICAgICBzcGVjVmVyc2lvbjogZGVjb2RlZFR4LnNwZWNWZXJzaW9uLFxuICAgICAgdHJhbnNhY3Rpb25WZXJzaW9uOiBkZWNvZGVkVHgudHJhbnNhY3Rpb25WZXJzaW9uLFxuICAgICAgZXJhUGVyaW9kOiBkZWNvZGVkVHguZXJhUGVyaW9kLFxuICAgICAgY2hhaW5OYW1lOiB0aGlzLl9jaGFpbk5hbWUsXG4gICAgICB0aXA6IGRlY29kZWRUeC50aXAgPyBOdW1iZXIoZGVjb2RlZFR4LnRpcCkgOiAwLFxuICAgIH07XG5cbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncztcbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIGNvbnN0IHsgdGFyZ2V0QWNjb3VudCB9ID0gdHhNZXRob2QgYXMgUmVnaXN0ZXJEaWRXaXRoQ0REQXJncztcbiAgICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModGFyZ2V0QWNjb3VudCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSk7XG4gICAgICByZXN1bHQuYW1vdW50ID0gJzAnOyAvLyBSZWdpc3RlckRpZFdpdGhDREQgZG9lcyBub3QgdHJhbnNmZXIgYW55IHZhbHVlXG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLnRvSnNvbigpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBzdXBlci5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuXG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZGVjb2RlKHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICBpc0ltbW9ydGFsRXJhOiB1dGlscy5pc1plcm9IZXgodGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24uZXJhKSxcbiAgICB9KSBhcyB1bmtub3duIGFzIERlY29kZWRUeDtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbikge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUmVnaXN0ZXJEaWRXaXRoQ0REKGRlY29kZWRUeCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUmVnaXN0ZXJEaWRXaXRoQ0REKGRlY29kZWRUeDogRGVjb2RlZFR4KSB7XG4gICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgUmVnaXN0ZXJEaWRXaXRoQ0REQXJncztcbiAgICBjb25zdCBrZXlwYWlyRGVzdCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC50YXJnZXRBY2NvdW50KSkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH0pO1xuICAgIGNvbnN0IHRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSk7XG4gICAgY29uc3QgdmFsdWUgPSAnMCc7XG4gICAgY29uc3QgZnJvbSA9IGRlY29kZWRUeC5hZGRyZXNzO1xuXG4gICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogZnJvbSxcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHRvLFxuICAgICAgdmFsdWUsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,12 +1,28 @@
1
1
  import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
2
- import { TransactionBuilder } from './transactionBuilder';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
3
  import { TransferBuilder } from './transferBuilder';
4
+ import { RegisterDidWithCDDBuilder } from './registerDidWithCDDBuilder';
5
+ import { BondExtraBuilder } from './bondExtraBuilder';
6
+ import { BatchStakingBuilder } from './batchStakingBuilder';
7
+ import { BatchUnstakingBuilder } from './batchUnstakingBuilder';
8
+ import { WithdrawUnbondedBuilder } from './withdrawUnbondedBuilder';
9
+ import { Interface, TransactionBuilder } from './';
10
+ import { TxMethod } from './iface';
11
+ import { Transaction as BaseTransaction } from '@bitgo-beta/abstract-substrate';
12
+ import { Transaction as PolyxTransaction } from './transaction';
13
+ export type SupportedTransaction = BaseTransaction | PolyxTransaction;
4
14
  export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
5
- /** @inheritdoc */
6
- from(raw: string): TransactionBuilder;
7
- /** @inheritdoc */
15
+ protected _material: Interface.Material;
16
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
17
  getTransferBuilder(): TransferBuilder;
9
- /** @inheritdoc */
18
+ getRegisterDidWithCDDBuilder(): RegisterDidWithCDDBuilder;
19
+ getBondExtraBuilder(): BondExtraBuilder;
20
+ getBatchBuilder(): BatchStakingBuilder;
21
+ getBatchUnstakingBuilder(): BatchUnstakingBuilder;
22
+ getWithdrawUnbondedBuilder(): WithdrawUnbondedBuilder;
10
23
  getWalletInitializationBuilder(): void;
24
+ from(rawTxn: string): TransactionBuilder<TxMethod, SupportedTransaction>;
25
+ material(material: Interface.Material): this;
26
+ private getBuilder;
11
27
  }
12
28
  //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAIrC,kBAAkB;IAClB,kBAAkB,IAAI,eAAe;IAIrC,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;CAGvC"}
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAuB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAqB,kBAAkB,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEtE,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB,IAAI,eAAe;IAIrC,4BAA4B,IAAI,yBAAyB;IAIzD,mBAAmB,IAAI,gBAAgB;IAIvC,eAAe,IAAI,mBAAmB;IAItC,wBAAwB,IAAI,qBAAqB;IAIjD,0BAA0B,IAAI,uBAAuB;IAIrD,8BAA8B,IAAI,IAAI;IAItC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAMxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI;IAK5C,OAAO,CAAC,UAAU;CA6CnB"}
@@ -1,20 +1,102 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.TransactionBuilderFactory = void 0;
4
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
+ const transferBuilder_1 = require("./transferBuilder");
10
+ const registerDidWithCDDBuilder_1 = require("./registerDidWithCDDBuilder");
11
+ const bondExtraBuilder_1 = require("./bondExtraBuilder");
12
+ const batchStakingBuilder_1 = require("./batchStakingBuilder");
13
+ const batchUnstakingBuilder_1 = require("./batchUnstakingBuilder");
14
+ const withdrawUnbondedBuilder_1 = require("./withdrawUnbondedBuilder");
15
+ const utils_1 = __importDefault(require("./utils"));
16
+ const _1 = require("./");
5
17
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
6
- /** @inheritdoc */
7
- from(raw) {
8
- throw new Error('Method not implemented.');
18
+ constructor(_coinConfig) {
19
+ super(_coinConfig);
20
+ this._material = utils_1.default.getMaterial(_coinConfig.network.type);
9
21
  }
10
- /** @inheritdoc */
11
22
  getTransferBuilder() {
12
- throw new Error('Method not implemented.');
23
+ return new transferBuilder_1.TransferBuilder(this._coinConfig).material(this._material);
24
+ }
25
+ getRegisterDidWithCDDBuilder() {
26
+ return new registerDidWithCDDBuilder_1.RegisterDidWithCDDBuilder(this._coinConfig).material(this._material);
27
+ }
28
+ getBondExtraBuilder() {
29
+ return new bondExtraBuilder_1.BondExtraBuilder(this._coinConfig).material(this._material);
30
+ }
31
+ getBatchBuilder() {
32
+ return new batchStakingBuilder_1.BatchStakingBuilder(this._coinConfig).material(this._material);
33
+ }
34
+ getBatchUnstakingBuilder() {
35
+ return new batchUnstakingBuilder_1.BatchUnstakingBuilder(this._coinConfig).material(this._material);
36
+ }
37
+ getWithdrawUnbondedBuilder() {
38
+ return new withdrawUnbondedBuilder_1.WithdrawUnbondedBuilder(this._coinConfig).material(this._material);
13
39
  }
14
- /** @inheritdoc */
15
40
  getWalletInitializationBuilder() {
16
- throw new Error('Method not implemented.');
41
+ throw new sdk_core_1.NotImplementedError(`walletInitialization for ${this._coinConfig.name} not implemented`);
42
+ }
43
+ from(rawTxn) {
44
+ const builder = this.getBuilder(rawTxn);
45
+ builder.from(rawTxn);
46
+ return builder;
47
+ }
48
+ material(material) {
49
+ this._material = material;
50
+ return this;
51
+ }
52
+ getBuilder(rawTxn) {
53
+ const registry = _1.SingletonRegistry.getInstance(this._material);
54
+ const decodedTxn = (0, txwrapper_polkadot_1.decode)(rawTxn, {
55
+ metadataRpc: this._material.metadata,
56
+ registry: registry,
57
+ });
58
+ const methodName = decodedTxn.method?.name;
59
+ if (methodName === _1.Interface.MethodNames.TransferWithMemo) {
60
+ return this.getTransferBuilder();
61
+ }
62
+ else if (methodName === _1.Interface.MethodNames.RegisterDidWithCDD) {
63
+ return this.getRegisterDidWithCDDBuilder();
64
+ }
65
+ else if (methodName === 'bondExtra') {
66
+ return this.getBondExtraBuilder();
67
+ }
68
+ else if (methodName === 'batchAll') {
69
+ const args = decodedTxn.method.args;
70
+ if (args.calls && args.calls.length === 2) {
71
+ // Decode method names from the calls using utils.decodeMethodName
72
+ const firstCallMethod = utils_1.default.decodeMethodName(args.calls[0], registry);
73
+ const secondCallMethod = utils_1.default.decodeMethodName(args.calls[1], registry);
74
+ // Check for batch staking pattern: bond + nominate
75
+ if (firstCallMethod === 'bond' && secondCallMethod === 'nominate') {
76
+ return this.getBatchBuilder();
77
+ }
78
+ // Check for batch unstaking pattern: chill + unbond
79
+ if (firstCallMethod === 'chill' && secondCallMethod === 'unbond') {
80
+ return this.getBatchUnstakingBuilder();
81
+ }
82
+ }
83
+ // Fall back to general batch builder for other batchAll cases
84
+ return this.getBatchBuilder();
85
+ }
86
+ else if (methodName === 'batch') {
87
+ return this.getBatchBuilder();
88
+ }
89
+ else if (methodName === 'bond') {
90
+ return this.getBatchBuilder();
91
+ }
92
+ else if (methodName === 'nominate') {
93
+ return this.getBatchBuilder();
94
+ }
95
+ else if (methodName === 'withdrawUnbonded') {
96
+ return this.getWithdrawUnbondedBuilder();
97
+ }
98
+ throw new Error('Transaction cannot be parsed or has an unsupported transaction type');
17
99
  }
18
100
  }
19
101
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBcUU7QUFJckUsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDhCQUE4QjtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBZkQsOERBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKCk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBMEY7QUFFMUYsc0VBQXVEO0FBQ3ZELHVEQUFvRDtBQUNwRCwyRUFBd0U7QUFDeEUseURBQXNEO0FBQ3RELCtEQUE0RDtBQUM1RCxtRUFBZ0U7QUFDaEUsdUVBQW9FO0FBQ3BFLG9EQUE0QjtBQUM1Qix5QkFBc0U7QUFPdEUsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFHMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE9BQU8sSUFBSSxxREFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxtQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSw2Q0FBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSxpREFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSw4QkFBbUIsQ0FBQyw0QkFBNEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFjO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQTRCO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFVBQVUsQ0FBQyxNQUFjO1FBQy9CLE1BQU0sUUFBUSxHQUFHLG9CQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBQSwyQkFBTSxFQUFDLE1BQU0sRUFBRTtZQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ3BDLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQzNDLElBQUksVUFBVSxLQUFLLFlBQVMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLFVBQVUsS0FBSyxZQUFTLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDbkUsT0FBTyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUM3QyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNwQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFxQyxDQUFDO1lBRXJFLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsa0VBQWtFO2dCQUNsRSxNQUFNLGVBQWUsR0FBRyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDeEUsTUFBTSxnQkFBZ0IsR0FBRyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFFekUsbURBQW1EO2dCQUNuRCxJQUFJLGVBQWUsS0FBSyxNQUFNLElBQUksZ0JBQWdCLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ2xFLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNoQyxDQUFDO2dCQUNELG9EQUFvRDtnQkFDcEQsSUFBSSxlQUFlLEtBQUssT0FBTyxJQUFJLGdCQUFnQixLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNqRSxPQUFPLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUN6QyxDQUFDO1lBQ0gsQ0FBQztZQUNELDhEQUE4RDtZQUM5RCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEMsQ0FBQzthQUFNLElBQUksVUFBVSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUM3QyxPQUFPLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDekYsQ0FBQztDQUNGO0FBNUZELDhEQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgZGVjb2RlIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgUmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlciB9IGZyb20gJy4vcmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlcic7XG5pbXBvcnQgeyBCb25kRXh0cmFCdWlsZGVyIH0gZnJvbSAnLi9ib25kRXh0cmFCdWlsZGVyJztcbmltcG9ydCB7IEJhdGNoU3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL2JhdGNoU3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgQmF0Y2hVbnN0YWtpbmdCdWlsZGVyIH0gZnJvbSAnLi9iYXRjaFVuc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgV2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXIgfSBmcm9tICcuL3dpdGhkcmF3VW5ib25kZWRCdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEludGVyZmFjZSwgU2luZ2xldG9uUmVnaXN0cnksIFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vJztcbmltcG9ydCB7IFR4TWV0aG9kLCBCYXRjaENhbGxPYmplY3QgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBQb2x5eFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5cbmV4cG9ydCB0eXBlIFN1cHBvcnRlZFRyYW5zYWN0aW9uID0gQmFzZVRyYW5zYWN0aW9uIHwgUG9seXhUcmFuc2FjdGlvbjtcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIHByb3RlY3RlZCBfbWF0ZXJpYWw6IEludGVyZmFjZS5NYXRlcmlhbDtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChfY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUpO1xuICB9XG5cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKCk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0UmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlcigpOiBSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0Qm9uZEV4dHJhQnVpbGRlcigpOiBCb25kRXh0cmFCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJvbmRFeHRyYUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0QmF0Y2hCdWlsZGVyKCk6IEJhdGNoU3Rha2luZ0J1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQmF0Y2hTdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRCYXRjaFVuc3Rha2luZ0J1aWxkZXIoKTogQmF0Y2hVbnN0YWtpbmdCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJhdGNoVW5zdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRXaXRoZHJhd1VuYm9uZGVkQnVpbGRlcigpOiBXaXRoZHJhd1VuYm9uZGVkQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBXaXRoZHJhd1VuYm9uZGVkQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoYHdhbGxldEluaXRpYWxpemF0aW9uIGZvciAke3RoaXMuX2NvaW5Db25maWcubmFtZX0gbm90IGltcGxlbWVudGVkYCk7XG4gIH1cblxuICBmcm9tKHJhd1R4bjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyPFR4TWV0aG9kLCBTdXBwb3J0ZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSB0aGlzLmdldEJ1aWxkZXIocmF3VHhuKTtcbiAgICBidWlsZGVyLmZyb20ocmF3VHhuKTtcbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIG1hdGVyaWFsKG1hdGVyaWFsOiBJbnRlcmZhY2UuTWF0ZXJpYWwpOiB0aGlzIHtcbiAgICB0aGlzLl9tYXRlcmlhbCA9IG1hdGVyaWFsO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCdWlsZGVyKHJhd1R4bjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyPFR4TWV0aG9kLCBTdXBwb3J0ZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UodGhpcy5fbWF0ZXJpYWwpO1xuICAgIGNvbnN0IGRlY29kZWRUeG4gPSBkZWNvZGUocmF3VHhuLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogcmVnaXN0cnksXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXRob2ROYW1lID0gZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWU7XG4gICAgaWYgKG1ldGhvZE5hbWUgPT09IEludGVyZmFjZS5NZXRob2ROYW1lcy5UcmFuc2ZlcldpdGhNZW1vKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IEludGVyZmFjZS5NZXRob2ROYW1lcy5SZWdpc3RlckRpZFdpdGhDREQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdib25kRXh0cmEnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRCb25kRXh0cmFCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSAnYmF0Y2hBbGwnKSB7XG4gICAgICBjb25zdCBhcmdzID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB7IGNhbGxzPzogQmF0Y2hDYWxsT2JqZWN0W10gfTtcblxuICAgICAgaWYgKGFyZ3MuY2FsbHMgJiYgYXJncy5jYWxscy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgLy8gRGVjb2RlIG1ldGhvZCBuYW1lcyBmcm9tIHRoZSBjYWxscyB1c2luZyB1dGlscy5kZWNvZGVNZXRob2ROYW1lXG4gICAgICAgIGNvbnN0IGZpcnN0Q2FsbE1ldGhvZCA9IHV0aWxzLmRlY29kZU1ldGhvZE5hbWUoYXJncy5jYWxsc1swXSwgcmVnaXN0cnkpO1xuICAgICAgICBjb25zdCBzZWNvbmRDYWxsTWV0aG9kID0gdXRpbHMuZGVjb2RlTWV0aG9kTmFtZShhcmdzLmNhbGxzWzFdLCByZWdpc3RyeSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIGJhdGNoIHN0YWtpbmcgcGF0dGVybjogYm9uZCArIG5vbWluYXRlXG4gICAgICAgIGlmIChmaXJzdENhbGxNZXRob2QgPT09ICdib25kJyAmJiBzZWNvbmRDYWxsTWV0aG9kID09PSAnbm9taW5hdGUnKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QmF0Y2hCdWlsZGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgZm9yIGJhdGNoIHVuc3Rha2luZyBwYXR0ZXJuOiBjaGlsbCArIHVuYm9uZFxuICAgICAgICBpZiAoZmlyc3RDYWxsTWV0aG9kID09PSAnY2hpbGwnICYmIHNlY29uZENhbGxNZXRob2QgPT09ICd1bmJvbmQnKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QmF0Y2hVbnN0YWtpbmdCdWlsZGVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgYmFjayB0byBnZW5lcmFsIGJhdGNoIGJ1aWxkZXIgZm9yIG90aGVyIGJhdGNoQWxsIGNhc2VzXG4gICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaEJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdiYXRjaCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ2JvbmQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaEJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdub21pbmF0ZScpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ3dpdGhkcmF3VW5ib25kZWQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRXaXRoZHJhd1VuYm9uZGVkQnVpbGRlcigpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignVHJhbnNhY3Rpb24gY2Fubm90IGJlIHBhcnNlZCBvciBoYXMgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,54 @@
1
- import { TransactionBuilder } from './transactionBuilder';
1
+ import { TransactionBuilder, Transaction } from '@bitgo-beta/abstract-substrate';
2
+ import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
2
3
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
- import { TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { BaseAddress, TransactionType } from '@bitgo-beta/sdk-core';
4
5
  export declare class TransferBuilder extends TransactionBuilder {
6
+ protected _amount: string;
7
+ protected _to: string;
8
+ protected _memo: string;
5
9
  constructor(_coinConfig: Readonly<CoinConfig>);
6
10
  protected get transactionType(): TransactionType;
11
+ /**
12
+ * Construct an unsigned `transferWithMemo` transaction using the provided details.
13
+ *
14
+ * @returns {UnsignedTransaction} The constructed unsigned transferWithMemo transaction.
15
+ */
16
+ protected buildTransaction(): UnsignedTransaction;
17
+ /**
18
+ *
19
+ * The amount for transfer transaction.
20
+ *
21
+ * @param {string} amount
22
+ * @returns {TransferBuilder} This transfer builder.
23
+ */
24
+ amount(amount: string): this;
25
+ /**
26
+ *
27
+ * The destination address for transfer transaction.
28
+ *
29
+ * @param {string} dest
30
+ * @returns {TransferBuilder} This transfer builder.
31
+ */
32
+ to({ address }: BaseAddress): this;
33
+ /**
34
+ * The memo to attach to the transfer transaction.
35
+ * Pads the memo on the left with zeros to ensure it is 32 characters long.
36
+ *
37
+ * @param {string} memo The memo string to include.
38
+ * @returns {TransferBuilder} This transfer builder.
39
+ */
40
+ memo(memo: string): this;
41
+ /** @inheritdoc */
42
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction?: string): void;
43
+ /** @inheritdoc */
44
+ protected fromImplementation(rawTransaction: string): Transaction;
45
+ /**
46
+ * Construct a transaction to transfer funds with an attached memo.
47
+ *
48
+ * @param {Interface.TransferWithMemoArgs} args Arguments to be passed to the transferWithMemo method
49
+ * @param {Interface.CreateBaseTxInfo} info Base txn info required to construct the transfer transaction
50
+ * @returns {UnsignedTransaction} An unsigned transferWithMemo transaction
51
+ */
52
+ private TransferWithMemo;
7
53
  }
8
54
  //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/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;AAEvD,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;CACF"}
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAqB,MAAM,gCAAgC,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAgB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACtH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI7F,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;;;OAMG;IACH,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,IAAI;IAMlC;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxB,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;IAc9G,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAajE;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;CAgBzB"}
@@ -1,15 +1,115 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.TransferBuilder = void 0;
4
- const transactionBuilder_1 = require("./transactionBuilder");
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
9
+ const txwrapper_core_1 = require("@substrate/txwrapper-core");
5
10
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
6
- class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
11
+ const utils_1 = __importDefault(require("./utils"));
12
+ class TransferBuilder extends abstract_substrate_1.TransactionBuilder {
7
13
  constructor(_coinConfig) {
8
14
  super(_coinConfig);
15
+ this.material(utils_1.default.getMaterial(_coinConfig.network.type));
9
16
  }
10
17
  get transactionType() {
11
18
  return sdk_core_1.TransactionType.Send;
12
19
  }
20
+ /**
21
+ * Construct an unsigned `transferWithMemo` transaction using the provided details.
22
+ *
23
+ * @returns {UnsignedTransaction} The constructed unsigned transferWithMemo transaction.
24
+ */
25
+ buildTransaction() {
26
+ const baseTxInfo = this.createBaseTxInfo();
27
+ return this.TransferWithMemo({
28
+ dest: { id: this._to },
29
+ value: this._amount,
30
+ memo: this._memo,
31
+ }, baseTxInfo);
32
+ }
33
+ /**
34
+ *
35
+ * The amount for transfer transaction.
36
+ *
37
+ * @param {string} amount
38
+ * @returns {TransferBuilder} This transfer builder.
39
+ */
40
+ amount(amount) {
41
+ this.validateValue(new bignumber_js_1.default(amount));
42
+ this._amount = amount;
43
+ return this;
44
+ }
45
+ /**
46
+ *
47
+ * The destination address for transfer transaction.
48
+ *
49
+ * @param {string} dest
50
+ * @returns {TransferBuilder} This transfer builder.
51
+ */
52
+ to({ address }) {
53
+ this.validateAddress({ address });
54
+ this._to = address;
55
+ return this;
56
+ }
57
+ /**
58
+ * The memo to attach to the transfer transaction.
59
+ * Pads the memo on the left with zeros to ensure it is 32 characters long.
60
+ *
61
+ * @param {string} memo The memo string to include.
62
+ * @returns {TransferBuilder} This transfer builder.
63
+ */
64
+ memo(memo) {
65
+ const paddedMemo = memo.padStart(32, '0');
66
+ this._memo = paddedMemo;
67
+ return this;
68
+ }
69
+ /** @inheritdoc */
70
+ validateDecodedTransaction(decodedTxn, rawTransaction) {
71
+ if (decodedTxn.method?.name === abstract_substrate_1.Interface.MethodNames.TransferWithMemo) {
72
+ const txMethod = decodedTxn.method.args;
73
+ const amount = `${txMethod.value}`;
74
+ const to = txMethod.dest.id;
75
+ const memo = txMethod.memo;
76
+ const validationResult = abstract_substrate_1.Schema.TransferWithMemoTransactionSchema.validate({ amount, to, memo });
77
+ if (validationResult.error) {
78
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction: ${validationResult.error.message}`);
79
+ }
80
+ }
81
+ }
82
+ /** @inheritdoc */
83
+ fromImplementation(rawTransaction) {
84
+ const tx = super.fromImplementation(rawTransaction);
85
+ if (this._method?.name === abstract_substrate_1.Interface.MethodNames.TransferWithMemo) {
86
+ const txMethod = this._method.args;
87
+ this.amount(txMethod.value);
88
+ this.to({ address: utils_1.default.decodeSubstrateAddress(txMethod.dest.id, this.getAddressFormat()) });
89
+ this.memo(txMethod.memo);
90
+ }
91
+ else {
92
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected transferWithMemo`);
93
+ }
94
+ return tx;
95
+ }
96
+ /**
97
+ * Construct a transaction to transfer funds with an attached memo.
98
+ *
99
+ * @param {Interface.TransferWithMemoArgs} args Arguments to be passed to the transferWithMemo method
100
+ * @param {Interface.CreateBaseTxInfo} info Base txn info required to construct the transfer transaction
101
+ * @returns {UnsignedTransaction} An unsigned transferWithMemo transaction
102
+ */
103
+ TransferWithMemo(args, info) {
104
+ return (0, txwrapper_core_1.defineMethod)({
105
+ method: {
106
+ args,
107
+ name: 'transferWithMemo',
108
+ pallet: 'balances',
109
+ },
110
+ ...info.baseTxInfo,
111
+ }, info.options);
112
+ }
13
113
  }
14
114
  exports.TransferBuilder = TransferBuilder;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQTBEO0FBRTFELG1EQUF1RDtBQUV2RCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBQ3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFSRCwwQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG59XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBRXJDLHVFQUFvRztBQUNwRyw4REFBc0g7QUFFdEgsbURBQTZGO0FBRTdGLG9EQUE0QjtBQUU1QixNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBS3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sZ0JBQWdCO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUMxQjtZQUNFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3RCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTztZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDakIsRUFDRCxVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBZTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQUMsSUFBWTtRQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiwwQkFBMEIsQ0FBQyxVQUFtRCxFQUFFLGNBQXVCO1FBQ3JHLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEtBQUssOEJBQVMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN2RSxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQXNDLENBQUM7WUFDMUUsTUFBTSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUUzQixNQUFNLGdCQUFnQixHQUFHLDJCQUFNLENBQUMsaUNBQWlDLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2pHLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDOUYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssOEJBQVMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQXNDLENBQUM7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFLLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUYsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksa0NBQXVCLENBQUMsNkJBQTZCLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2xILENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxnQkFBZ0IsQ0FDdEIsSUFBb0MsRUFDcEMsSUFBZ0M7UUFFaEMsT0FBTyxJQUFBLDZCQUFZLEVBQ2pCO1lBQ0UsTUFBTSxFQUFFO2dCQUNOLElBQUk7Z0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsTUFBTSxFQUFFLFVBQVU7YUFDbkI7WUFDRCxHQUFHLElBQUksQ0FBQyxVQUFVO1NBQ25CLEVBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBMUhELDBDQTBIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyLCBUcmFuc2FjdGlvbiwgSW50ZXJmYWNlLCBTY2hlbWEgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1zdWJzdHJhdGUnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIGRlZmluZU1ldGhvZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUFkZHJlc3MsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdG86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9tZW1vOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMubWF0ZXJpYWwodXRpbHMuZ2V0TWF0ZXJpYWwoX2NvaW5Db25maWcubmV0d29yay50eXBlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYW4gdW5zaWduZWQgYHRyYW5zZmVyV2l0aE1lbW9gIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBwcm92aWRlZCBkZXRhaWxzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gVGhlIGNvbnN0cnVjdGVkIHVuc2lnbmVkIHRyYW5zZmVyV2l0aE1lbW8gdHJhbnNhY3Rpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgcmV0dXJuIHRoaXMuVHJhbnNmZXJXaXRoTWVtbyhcbiAgICAgIHtcbiAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgdmFsdWU6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgbWVtbzogdGhpcy5fbWVtbyxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgYW1vdW50IGZvciB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihhbW91bnQpKTtcbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIHRyYW5zZmVyIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqL1xuICB0byh7IGFkZHJlc3MgfTogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5fdG8gPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtZW1vIHRvIGF0dGFjaCB0byB0aGUgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqIFBhZHMgdGhlIG1lbW8gb24gdGhlIGxlZnQgd2l0aCB6ZXJvcyB0byBlbnN1cmUgaXQgaXMgMzIgY2hhcmFjdGVycyBsb25nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVtbyBUaGUgbWVtbyBzdHJpbmcgdG8gaW5jbHVkZS5cbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKi9cbiAgbWVtbyhtZW1vOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCBwYWRkZWRNZW1vID0gbWVtby5wYWRTdGFydCgzMiwgJzAnKTtcbiAgICB0aGlzLl9tZW1vID0gcGFkZGVkTWVtbztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgsIHJhd1RyYW5zYWN0aW9uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuVHJhbnNmZXJXaXRoTWVtbykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIEludGVyZmFjZS5UcmFuc2ZlcldpdGhNZW1vQXJncztcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke3R4TWV0aG9kLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IHR4TWV0aG9kLmRlc3QuaWQ7XG4gICAgICBjb25zdCBtZW1vID0gdHhNZXRob2QubWVtbztcblxuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNjaGVtYS5UcmFuc2ZlcldpdGhNZW1vVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyBhbW91bnQsIHRvLCBtZW1vIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuVHJhbnNmZXJXaXRoTWVtbykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBJbnRlcmZhY2UuVHJhbnNmZXJXaXRoTWVtb0FyZ3M7XG4gICAgICB0aGlzLmFtb3VudCh0eE1ldGhvZC52YWx1ZSk7XG4gICAgICB0aGlzLnRvKHsgYWRkcmVzczogdXRpbHMuZGVjb2RlU3Vic3RyYXRlQWRkcmVzcyh0eE1ldGhvZC5kZXN0LmlkLCB0aGlzLmdldEFkZHJlc3NGb3JtYXQoKSkgfSk7XG4gICAgICB0aGlzLm1lbW8odHhNZXRob2QubWVtbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIHRyYW5zZmVyV2l0aE1lbW9gKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIHRyYW5zYWN0aW9uIHRvIHRyYW5zZmVyIGZ1bmRzIHdpdGggYW4gYXR0YWNoZWQgbWVtby5cbiAgICpcbiAgICogQHBhcmFtIHtJbnRlcmZhY2UuVHJhbnNmZXJXaXRoTWVtb0FyZ3N9IGFyZ3MgQXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgdHJhbnNmZXJXaXRoTWVtbyBtZXRob2RcbiAgICogQHBhcmFtIHtJbnRlcmZhY2UuQ3JlYXRlQmFzZVR4SW5mb30gaW5mbyBCYXNlIHR4biBpbmZvIHJlcXVpcmVkIHRvIGNvbnN0cnVjdCB0aGUgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IEFuIHVuc2lnbmVkIHRyYW5zZmVyV2l0aE1lbW8gdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgVHJhbnNmZXJXaXRoTWVtbyhcbiAgICBhcmdzOiBJbnRlcmZhY2UuVHJhbnNmZXJXaXRoTWVtb0FyZ3MsXG4gICAgaW5mbzogSW50ZXJmYWNlLkNyZWF0ZUJhc2VUeEluZm9cbiAgKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIGRlZmluZU1ldGhvZChcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiB7XG4gICAgICAgICAgYXJncyxcbiAgICAgICAgICBuYW1lOiAndHJhbnNmZXJXaXRoTWVtbycsXG4gICAgICAgICAgcGFsbGV0OiAnYmFsYW5jZXMnLFxuICAgICAgICB9LFxuICAgICAgICAuLi5pbmZvLmJhc2VUeEluZm8sXG4gICAgICB9LFxuICAgICAgaW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxufVxuIl19