@bitgo-beta/sdk-coin-polyx 1.0.1-beta.75 → 1.0.1-beta.750

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 (135) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -1
  4. package/dist/src/lib/baseBuilder.d.ts +24 -0
  5. package/dist/src/lib/baseBuilder.d.ts.map +1 -0
  6. package/dist/src/lib/baseBuilder.js +31 -0
  7. package/dist/src/lib/batchStakingBuilder.d.ts +79 -0
  8. package/dist/src/lib/batchStakingBuilder.d.ts.map +1 -0
  9. package/dist/src/lib/batchStakingBuilder.js +299 -0
  10. package/dist/src/lib/batchUnstakingBuilder.d.ts +39 -0
  11. package/dist/src/lib/batchUnstakingBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/batchUnstakingBuilder.js +127 -0
  13. package/dist/src/lib/bondExtraBuilder.d.ts +37 -0
  14. package/dist/src/lib/bondExtraBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/bondExtraBuilder.js +101 -0
  16. package/dist/src/lib/constants.d.ts +17 -0
  17. package/dist/src/lib/constants.d.ts.map +1 -0
  18. package/dist/src/lib/constants.js +20 -0
  19. package/dist/src/lib/iface.d.ts +138 -0
  20. package/dist/src/lib/iface.d.ts.map +1 -1
  21. package/dist/src/lib/iface.js +37 -1
  22. package/dist/src/lib/index.d.ts +20 -0
  23. package/dist/src/lib/index.d.ts.map +1 -1
  24. package/dist/src/lib/index.js +50 -5
  25. package/dist/src/lib/preApproveAssetBuilder.d.ts +33 -0
  26. package/dist/src/lib/preApproveAssetBuilder.d.ts.map +1 -0
  27. package/dist/src/lib/preApproveAssetBuilder.js +77 -0
  28. package/dist/src/lib/registerDidWithCDDBuilder.d.ts +7 -2
  29. package/dist/src/lib/registerDidWithCDDBuilder.d.ts.map +1 -1
  30. package/dist/src/lib/registerDidWithCDDBuilder.js +19 -3
  31. package/dist/src/lib/rejectInstructionBuilder.d.ts +29 -0
  32. package/dist/src/lib/rejectInstructionBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/rejectInstructionBuilder.js +89 -0
  34. package/dist/src/lib/tokenTransferBuilder.d.ts +58 -0
  35. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/tokenTransferBuilder.js +158 -0
  37. package/dist/src/lib/transaction.d.ts +30 -0
  38. package/dist/src/lib/transaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction.js +193 -0
  40. package/dist/src/lib/transactionBuilderFactory.d.ts +21 -1
  41. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  42. package/dist/src/lib/transactionBuilderFactory.js +80 -4
  43. package/dist/src/lib/transferBuilder.d.ts +4 -2
  44. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  45. package/dist/src/lib/transferBuilder.js +10 -5
  46. package/dist/src/lib/txnSchema.d.ts +47 -0
  47. package/dist/src/lib/txnSchema.d.ts.map +1 -1
  48. package/dist/src/lib/txnSchema.js +152 -2
  49. package/dist/src/lib/unbondBuilder.d.ts +37 -0
  50. package/dist/src/lib/unbondBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/unbondBuilder.js +98 -0
  52. package/dist/src/lib/utils.d.ts +19 -0
  53. package/dist/src/lib/utils.d.ts.map +1 -1
  54. package/dist/src/lib/utils.js +47 -1
  55. package/dist/src/lib/withdrawUnbondedBuilder.d.ts +35 -0
  56. package/dist/src/lib/withdrawUnbondedBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/withdrawUnbondedBuilder.js +89 -0
  58. package/dist/src/polyx.d.ts +50 -9
  59. package/dist/src/polyx.d.ts.map +1 -1
  60. package/dist/src/polyx.js +269 -15
  61. package/dist/src/polyxToken.d.ts +20 -0
  62. package/dist/src/polyxToken.d.ts.map +1 -0
  63. package/dist/src/polyxToken.js +55 -0
  64. package/dist/src/register.d.ts.map +1 -1
  65. package/dist/src/register.js +5 -1
  66. package/dist/src/tpolyx.d.ts +7 -0
  67. package/dist/src/tpolyx.d.ts.map +1 -1
  68. package/dist/src/tpolyx.js +11 -1
  69. package/dist/test/integration/index.d.ts +1 -0
  70. package/dist/test/integration/index.d.ts.map +1 -0
  71. package/dist/test/integration/index.js +1 -0
  72. package/dist/test/resources/index.d.ts +106 -0
  73. package/dist/test/resources/index.d.ts.map +1 -0
  74. package/dist/test/resources/index.js +112 -0
  75. package/dist/test/resources/mainnet.d.ts +2 -0
  76. package/dist/test/resources/mainnet.d.ts.map +1 -0
  77. package/dist/test/resources/mainnet.js +5 -0
  78. package/dist/test/resources/materialData.json +8 -0
  79. package/dist/test/resources/materialDataModified.json +8 -0
  80. package/dist/test/resources/testnet.d.ts +2 -0
  81. package/dist/test/resources/testnet.d.ts.map +1 -0
  82. package/dist/test/resources/testnet.js +5 -0
  83. package/dist/test/resources/wrwUsers.d.ts +19 -0
  84. package/dist/test/resources/wrwUsers.d.ts.map +1 -0
  85. package/dist/test/resources/wrwUsers.js +60 -0
  86. package/dist/test/unit/polyx.d.ts +2 -0
  87. package/dist/test/unit/polyx.d.ts.map +1 -0
  88. package/dist/test/unit/polyx.js +209 -0
  89. package/dist/test/unit/transactionBuilder/base.d.ts +4 -0
  90. package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
  91. package/dist/test/unit/transactionBuilder/base.js +245 -0
  92. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts +2 -0
  93. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts.map +1 -0
  94. package/dist/test/unit/transactionBuilder/batchStakingBuilder.js +263 -0
  95. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts +2 -0
  96. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts.map +1 -0
  97. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.js +159 -0
  98. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts +2 -0
  99. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts.map +1 -0
  100. package/dist/test/unit/transactionBuilder/bondExtraBuilder.js +158 -0
  101. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts +2 -0
  102. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts.map +1 -0
  103. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.js +115 -0
  104. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts +2 -0
  105. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts.map +1 -0
  106. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.js +302 -0
  107. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts +2 -0
  108. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts.map +1 -0
  109. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.js +128 -0
  110. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts +2 -0
  111. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts.map +1 -0
  112. package/dist/test/unit/transactionBuilder/singletonRegistry.js +59 -0
  113. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  114. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  115. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +140 -0
  116. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  117. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  118. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +74 -0
  119. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  120. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  121. package/dist/test/unit/transactionBuilder/transferBuilder.js +326 -0
  122. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts +2 -0
  123. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts.map +1 -0
  124. package/dist/test/unit/transactionBuilder/unbondBuilder.js +144 -0
  125. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts +2 -0
  126. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts.map +1 -0
  127. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.js +138 -0
  128. package/dist/test/unit/utils.d.ts +2 -0
  129. package/dist/test/unit/utils.d.ts.map +1 -0
  130. package/dist/test/unit/utils.js +143 -0
  131. package/dist/tsconfig.tsbuildinfo +1 -0
  132. package/package.json +15 -9
  133. package/.eslintignore +0 -4
  134. package/.mocharc.yml +0 -8
  135. package/CHANGELOG.md +0 -22
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenTransferBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const baseBuilder_1 = require("./baseBuilder");
6
+ const iface_1 = require("./iface");
7
+ const transaction_1 = require("./transaction");
8
+ const txnSchema_1 = require("./txnSchema");
9
+ const txwrapper_core_1 = require("@substrate/txwrapper-core");
10
+ class TokenTransferBuilder extends baseBuilder_1.PolyxBaseBuilder {
11
+ constructor(_coinConfig) {
12
+ super(_coinConfig);
13
+ this._transaction = new transaction_1.Transaction(_coinConfig);
14
+ }
15
+ get transactionType() {
16
+ return sdk_core_1.TransactionType.SendToken;
17
+ }
18
+ buildTransaction() {
19
+ const baseTxInfo = this.createBaseTxInfo();
20
+ return this.addAndAffirmWithMediators({
21
+ venueId: null,
22
+ settlementType: iface_1.SettlementType.SettleOnAffirmation,
23
+ tradeDate: null,
24
+ valueDate: null,
25
+ legs: [
26
+ {
27
+ fungible: {
28
+ sender: {
29
+ did: this._fromDID,
30
+ kind: iface_1.PortfolioKind.Default,
31
+ },
32
+ receiver: {
33
+ did: this._toDID,
34
+ kind: iface_1.PortfolioKind.Default,
35
+ },
36
+ assetId: this._assetId,
37
+ amount: this._amount,
38
+ },
39
+ },
40
+ ],
41
+ portfolios: [
42
+ {
43
+ did: this._fromDID,
44
+ kind: iface_1.PortfolioKind.Default,
45
+ },
46
+ ],
47
+ instructionMemo: this._memo,
48
+ mediators: [],
49
+ }, baseTxInfo);
50
+ }
51
+ /**
52
+ * Sets the amount to transfer.
53
+ *
54
+ * @param {string} amount - The amount to transfer.
55
+ * @returns {this} The current instance of the builder.
56
+ */
57
+ assetId(assetId) {
58
+ this._assetId = assetId;
59
+ return this;
60
+ }
61
+ /**
62
+ * Sets the amount to transfer.
63
+ *
64
+ * @param {string} amount - The amount to transfer.
65
+ * @returns {this} The current instance of the builder.
66
+ */
67
+ amount(amount) {
68
+ this._amount = amount;
69
+ return this;
70
+ }
71
+ /**
72
+ * Sets the memo for the transaction.
73
+ * Pads the memo on the left with zeros to ensure it is 32 characters long.
74
+ *
75
+ * @param {string} memo - The memo for the transaction.
76
+ * @returns {this} The current instance of the builder.
77
+ */
78
+ memo(memo) {
79
+ const paddedMemo = memo.padStart(32, '0');
80
+ this._memo = paddedMemo;
81
+ return this;
82
+ }
83
+ /**
84
+ * Sets the sender DID.
85
+ *
86
+ * @param {string} fromDID - The sender DID.
87
+ * @returns {this} The current instance of the builder.
88
+ */
89
+ fromDID(fromDID) {
90
+ this._fromDID = fromDID;
91
+ return this;
92
+ }
93
+ /**
94
+ * Sets the receiver DID.
95
+ *
96
+ * @param {string} toDID - The receiver DID.
97
+ * @returns {this} The current instance of the builder.
98
+ */
99
+ toDID(toDID) {
100
+ this._toDID = toDID;
101
+ return this;
102
+ }
103
+ /** @inheritdoc */
104
+ fromImplementation(rawTransaction) {
105
+ const tx = super.fromImplementation(rawTransaction);
106
+ if (this._method?.name === iface_1.MethodNames.AddAndAffirmWithMediators) {
107
+ const txMethod = this._method.args;
108
+ this.assetId(txMethod.legs[0].fungible.assetId);
109
+ this.amount(txMethod.legs[0].fungible.amount);
110
+ this.memo(txMethod.instructionMemo);
111
+ this.fromDID(txMethod.legs[0].fungible.sender.did);
112
+ this.toDID(txMethod.legs[0].fungible.receiver.did);
113
+ }
114
+ else {
115
+ throw new Error(`Invalid Transaction Type: ${this._method?.name}. Expected AddAndAffirmWithMediators`);
116
+ }
117
+ return tx;
118
+ }
119
+ /** @inheritdoc */
120
+ validateDecodedTransaction(decodedTxn, rawTransaction) {
121
+ if (decodedTxn.method?.name === iface_1.MethodNames.AddAndAffirmWithMediators) {
122
+ const txMethod = decodedTxn.method.args;
123
+ const venueId = txMethod.venueId;
124
+ const settlementType = txMethod.settlementType;
125
+ const tradeDate = txMethod.tradeDate;
126
+ const valueDate = txMethod.valueDate;
127
+ const legs = txMethod.legs;
128
+ const portfolios = txMethod.portfolios;
129
+ const instructionMemo = txMethod.instructionMemo;
130
+ const mediators = txMethod.mediators;
131
+ const validationResult = txnSchema_1.AddAndAffirmWithMediatorsTransactionSchema.validate({
132
+ venueId,
133
+ settlementType,
134
+ tradeDate,
135
+ valueDate,
136
+ legs,
137
+ portfolios,
138
+ instructionMemo,
139
+ mediators,
140
+ });
141
+ if (validationResult.error) {
142
+ throw new Error(`Invalid transaction: ${validationResult.error.message}`);
143
+ }
144
+ }
145
+ }
146
+ addAndAffirmWithMediators(args, info) {
147
+ return (0, txwrapper_core_1.defineMethod)({
148
+ method: {
149
+ args,
150
+ name: 'addAndAffirmWithMediators',
151
+ pallet: 'settlement',
152
+ },
153
+ ...info.baseTxInfo,
154
+ }, info.options);
155
+ }
156
+ }
157
+ exports.TokenTransferBuilder = TokenTransferBuilder;
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUF1RDtBQUV2RCwrQ0FBaUQ7QUFDakQsbUNBQThHO0FBQzlHLCtDQUE0QztBQUU1QywyQ0FBeUU7QUFDekUsOERBQXNIO0FBRXRILE1BQWEsb0JBQXFCLFNBQVEsOEJBQXVDO0lBTy9FLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUNuQztZQUNFLE9BQU8sRUFBRSxJQUFJO1lBQ2IsY0FBYyxFQUFFLHNCQUFjLENBQUMsbUJBQW1CO1lBQ2xELFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRTs0QkFDTixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVE7NEJBQ2xCLElBQUksRUFBRSxxQkFBYSxDQUFDLE9BQU87eUJBQzVCO3dCQUNELFFBQVEsRUFBRTs0QkFDUixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU07NEJBQ2hCLElBQUksRUFBRSxxQkFBYSxDQUFDLE9BQU87eUJBQzVCO3dCQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTt3QkFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO3FCQUNyQjtpQkFDRjth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QUFDLFNBQVMsQ0FBQztZQUNyQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDM0IsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUN2QyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1lBQ2pELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFFckMsTUFBTSxnQkFBZ0IsR0FBRyxzREFBMEMsQ0FBQyxRQUFRLENBQUM7Z0JBQzNFLE9BQU87Z0JBQ1AsY0FBYztnQkFDZCxTQUFTO2dCQUNULFNBQVM7Z0JBQ1QsSUFBSTtnQkFDSixVQUFVO2dCQUNWLGVBQWU7Z0JBQ2YsU0FBUzthQUNWLENBQUMsQ0FBQztZQUNILElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLHlCQUF5QixDQUMvQixJQUFtQyxFQUNuQyxJQUFnQztRQUVoQyxPQUFPLElBQUEsNkJBQVksRUFDakI7WUFDRSxNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixJQUFJLEVBQUUsMkJBQTJCO2dCQUNqQyxNQUFNLEVBQUUsWUFBWTthQUNyQjtZQUNELEdBQUcsSUFBSSxDQUFDLFVBQVU7U0FDbkIsRUFDRCxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEzS0Qsb0RBMktDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgUG9seXhCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZUJ1aWxkZXInO1xuaW1wb3J0IHsgVHhNZXRob2QsIE1ldGhvZE5hbWVzLCBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzQXJncywgU2V0dGxlbWVudFR5cGUsIFBvcnRmb2xpb0tpbmQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1zdWJzdHJhdGUnO1xuaW1wb3J0IHsgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc1RyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIGRlZmluZU1ldGhvZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5UcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBQb2x5eEJhc2VCdWlsZGVyPFR4TWV0aG9kLCBUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgX2Fzc2V0SWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9tZW1vOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZnJvbURJRDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3RvRElEOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW47XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgcmV0dXJuIHRoaXMuYWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9ycyhcbiAgICAgIHtcbiAgICAgICAgdmVudWVJZDogbnVsbCxcbiAgICAgICAgc2V0dGxlbWVudFR5cGU6IFNldHRsZW1lbnRUeXBlLlNldHRsZU9uQWZmaXJtYXRpb24sXG4gICAgICAgIHRyYWRlRGF0ZTogbnVsbCxcbiAgICAgICAgdmFsdWVEYXRlOiBudWxsLFxuICAgICAgICBsZWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZnVuZ2libGU6IHtcbiAgICAgICAgICAgICAgc2VuZGVyOiB7XG4gICAgICAgICAgICAgICAgZGlkOiB0aGlzLl9mcm9tRElELFxuICAgICAgICAgICAgICAgIGtpbmQ6IFBvcnRmb2xpb0tpbmQuRGVmYXVsdCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVjZWl2ZXI6IHtcbiAgICAgICAgICAgICAgICBkaWQ6IHRoaXMuX3RvRElELFxuICAgICAgICAgICAgICAgIGtpbmQ6IFBvcnRmb2xpb0tpbmQuRGVmYXVsdCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYXNzZXRJZDogdGhpcy5fYXNzZXRJZCxcbiAgICAgICAgICAgICAgYW1vdW50OiB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHBvcnRmb2xpb3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkaWQ6IHRoaXMuX2Zyb21ESUQsXG4gICAgICAgICAgICBraW5kOiBQb3J0Zm9saW9LaW5kLkRlZmF1bHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaW5zdHJ1Y3Rpb25NZW1vOiB0aGlzLl9tZW1vLFxuICAgICAgICBtZWRpYXRvcnM6IFtdLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm9cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFtb3VudCB0byB0cmFuc2Zlci5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCAtIFRoZSBhbW91bnQgdG8gdHJhbnNmZXIuXG4gICAqIEByZXR1cm5zIHt0aGlzfSBUaGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGUgYnVpbGRlci5cbiAgICovXG4gIGFzc2V0SWQoYXNzZXRJZDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fYXNzZXRJZCA9IGFzc2V0SWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYW1vdW50IHRvIHRyYW5zZmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IC0gVGhlIGFtb3VudCB0byB0cmFuc2Zlci5cbiAgICogQHJldHVybnMge3RoaXN9IFRoZSBjdXJyZW50IGluc3RhbmNlIG9mIHRoZSBidWlsZGVyLlxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1lbW8gZm9yIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogUGFkcyB0aGUgbWVtbyBvbiB0aGUgbGVmdCB3aXRoIHplcm9zIHRvIGVuc3VyZSBpdCBpcyAzMiBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vIC0gVGhlIG1lbW8gZm9yIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge3RoaXN9IFRoZSBjdXJyZW50IGluc3RhbmNlIG9mIHRoZSBidWlsZGVyLlxuICAgKi9cbiAgbWVtbyhtZW1vOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCBwYWRkZWRNZW1vID0gbWVtby5wYWRTdGFydCgzMiwgJzAnKTtcbiAgICB0aGlzLl9tZW1vID0gcGFkZGVkTWVtbztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZW5kZXIgRElELlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZnJvbURJRCAtIFRoZSBzZW5kZXIgRElELlxuICAgKiBAcmV0dXJucyB7dGhpc30gVGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgdGhlIGJ1aWxkZXIuXG4gICAqL1xuICBmcm9tRElEKGZyb21ESUQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX2Zyb21ESUQgPSBmcm9tRElEO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHJlY2VpdmVyIERJRC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvRElEIC0gVGhlIHJlY2VpdmVyIERJRC5cbiAgICogQHJldHVybnMge3RoaXN9IFRoZSBjdXJyZW50IGluc3RhbmNlIG9mIHRoZSBidWlsZGVyLlxuICAgKi9cbiAgdG9ESUQodG9ESUQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX3RvRElEID0gdG9ESUQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5BZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIEFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnNBcmdzO1xuICAgICAgdGhpcy5hc3NldElkKHR4TWV0aG9kLmxlZ3NbMF0uZnVuZ2libGUuYXNzZXRJZCk7XG4gICAgICB0aGlzLmFtb3VudCh0eE1ldGhvZC5sZWdzWzBdLmZ1bmdpYmxlLmFtb3VudCk7XG4gICAgICB0aGlzLm1lbW8odHhNZXRob2QuaW5zdHJ1Y3Rpb25NZW1vKTtcbiAgICAgIHRoaXMuZnJvbURJRCh0eE1ldGhvZC5sZWdzWzBdLmZ1bmdpYmxlLnNlbmRlci5kaWQpO1xuICAgICAgdGhpcy50b0RJRCh0eE1ldGhvZC5sZWdzWzBdLmZ1bmdpYmxlLnJlY2VpdmVyLmRpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIEFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnNgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLkFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnMpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzQXJncztcbiAgICAgIGNvbnN0IHZlbnVlSWQgPSB0eE1ldGhvZC52ZW51ZUlkO1xuICAgICAgY29uc3Qgc2V0dGxlbWVudFR5cGUgPSB0eE1ldGhvZC5zZXR0bGVtZW50VHlwZTtcbiAgICAgIGNvbnN0IHRyYWRlRGF0ZSA9IHR4TWV0aG9kLnRyYWRlRGF0ZTtcbiAgICAgIGNvbnN0IHZhbHVlRGF0ZSA9IHR4TWV0aG9kLnZhbHVlRGF0ZTtcbiAgICAgIGNvbnN0IGxlZ3MgPSB0eE1ldGhvZC5sZWdzO1xuICAgICAgY29uc3QgcG9ydGZvbGlvcyA9IHR4TWV0aG9kLnBvcnRmb2xpb3M7XG4gICAgICBjb25zdCBpbnN0cnVjdGlvbk1lbW8gPSB0eE1ldGhvZC5pbnN0cnVjdGlvbk1lbW87XG4gICAgICBjb25zdCBtZWRpYXRvcnMgPSB0eE1ldGhvZC5tZWRpYXRvcnM7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgICB2ZW51ZUlkLFxuICAgICAgICBzZXR0bGVtZW50VHlwZSxcbiAgICAgICAgdHJhZGVEYXRlLFxuICAgICAgICB2YWx1ZURhdGUsXG4gICAgICAgIGxlZ3MsXG4gICAgICAgIHBvcnRmb2xpb3MsXG4gICAgICAgIGluc3RydWN0aW9uTWVtbyxcbiAgICAgICAgbWVkaWF0b3JzLFxuICAgICAgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb246ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9ycyhcbiAgICBhcmdzOiBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzQXJncyxcbiAgICBpbmZvOiBJbnRlcmZhY2UuQ3JlYXRlQmFzZVR4SW5mb1xuICApOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gZGVmaW5lTWV0aG9kKFxuICAgICAge1xuICAgICAgICBtZXRob2Q6IHtcbiAgICAgICAgICBhcmdzLFxuICAgICAgICAgIG5hbWU6ICdhZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzJyxcbiAgICAgICAgICBwYWxsZXQ6ICdzZXR0bGVtZW50JyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uaW5mby5iYXNlVHhJbmZvLFxuICAgICAgfSxcbiAgICAgIGluZm8ub3B0aW9uc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Transaction as SubstrateTransaction } from '@bitgo-beta/abstract-substrate';
2
+ import { TxData } from './iface';
3
+ export declare class Transaction extends SubstrateTransaction {
4
+ /**
5
+ * Override the getAddressFormat method to return different values based on network type
6
+ * Returns 12 for mainnet and 42 for testnet
7
+ *
8
+ * @returns {number} The address format to use
9
+ * @override
10
+ */
11
+ protected getAddressFormat(): number;
12
+ /**
13
+ * Helper method to find a token name by assetId
14
+ * @param assetId The assetId to search for
15
+ * @returns The token name if found
16
+ * @throws {InvalidTransactionError} If no matching token is found
17
+ */
18
+ private getTokenNameByAssetId;
19
+ /** @inheritdoc */
20
+ toJson(): TxData;
21
+ /**
22
+ * Load the input and output data on this transaction.
23
+ */
24
+ loadInputsAndOutputs(): void;
25
+ private decodeInputsAndOutputsForRegisterDidWithCDD;
26
+ private decodeInputsAndOutputsForPreApproveAsset;
27
+ private decodeInputsAndOutputsForSendToken;
28
+ private decodeInputsAndOutputsForRejectInstruction;
29
+ }
30
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAkB,MAAM,gCAAgC,CAAC;AAKrG,OAAO,EAIL,MAAM,EAGP,MAAM,SAAS,CAAC;AAGjB,qBAAa,WAAY,SAAQ,oBAAoB;IACnD;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAyDhB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAoB5B,OAAO,CAAC,2CAA2C;IAsBnD,OAAO,CAAC,wCAAwC;IAmBhD,OAAO,CAAC,kCAAkC;IAqB1C,OAAO,CAAC,0CAA0C;CAiBnD"}
@@ -0,0 +1,193 @@
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.Transaction = void 0;
7
+ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
10
+ const keyring_1 = require("@polkadot/keyring");
11
+ const statics_1 = require("@bitgo-beta/statics");
12
+ const utils_1 = __importDefault(require("./utils"));
13
+ class Transaction extends abstract_substrate_1.Transaction {
14
+ /**
15
+ * Override the getAddressFormat method to return different values based on network type
16
+ * Returns 12 for mainnet and 42 for testnet
17
+ *
18
+ * @returns {number} The address format to use
19
+ * @override
20
+ */
21
+ getAddressFormat() {
22
+ return utils_1.default.getAddressFormat(this._coinConfig.name);
23
+ }
24
+ /**
25
+ * Helper method to find a token name by assetId
26
+ * @param assetId The assetId to search for
27
+ * @returns The token name if found
28
+ * @throws {InvalidTransactionError} If no matching token is found
29
+ */
30
+ getTokenNameByAssetId(assetId) {
31
+ // Search through all coins to find the one with matching assetId
32
+ let foundToken;
33
+ statics_1.coins.forEach((coin) => {
34
+ if (coin instanceof statics_1.PolyxCoin && coin.assetId === assetId) {
35
+ foundToken = coin.name;
36
+ }
37
+ });
38
+ if (!foundToken) {
39
+ throw new sdk_core_1.InvalidTransactionError(`No token found for assetId: ${assetId}`);
40
+ }
41
+ return foundToken;
42
+ }
43
+ /** @inheritdoc */
44
+ toJson() {
45
+ if (!this._substrateTransaction) {
46
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction');
47
+ }
48
+ const decodedTx = (0, txwrapper_polkadot_1.decode)(this._substrateTransaction, {
49
+ metadataRpc: this._substrateTransaction.metadataRpc,
50
+ registry: this._registry,
51
+ isImmortalEra: abstract_substrate_1.utils.isZeroHex(this._substrateTransaction.era),
52
+ });
53
+ const result = {
54
+ id: txwrapper_polkadot_1.construct.txHash(this.toBroadcastFormat()),
55
+ sender: decodedTx.address,
56
+ referenceBlock: decodedTx.blockHash,
57
+ blockNumber: decodedTx.blockNumber,
58
+ genesisHash: decodedTx.genesisHash,
59
+ nonce: decodedTx.nonce,
60
+ specVersion: decodedTx.specVersion,
61
+ transactionVersion: decodedTx.transactionVersion,
62
+ eraPeriod: decodedTx.eraPeriod,
63
+ chainName: this._chainName,
64
+ tip: decodedTx.tip ? Number(decodedTx.tip) : 0,
65
+ };
66
+ const txMethod = decodedTx.method.args;
67
+ if (this.type === sdk_core_1.TransactionType.WalletInitialization) {
68
+ const { targetAccount } = txMethod;
69
+ const keypairDest = new abstract_substrate_1.KeyPair({
70
+ pub: Buffer.from((0, keyring_1.decodeAddress)(targetAccount)).toString('hex'),
71
+ });
72
+ result.to = keypairDest.getAddress(this.getAddressFormat());
73
+ result.amount = '0'; // RegisterDidWithCDD does not transfer any value
74
+ }
75
+ else if (this.type === sdk_core_1.TransactionType.TrustLine) {
76
+ const { assetId } = txMethod;
77
+ result.assetId = assetId;
78
+ result.sender = decodedTx.address;
79
+ result.amount = '0'; // Pre-approval does not transfer any value
80
+ }
81
+ else if (this.type === sdk_core_1.TransactionType.SendToken) {
82
+ const sendTokenArgs = txMethod;
83
+ result.fromDID = sendTokenArgs.legs[0].fungible.sender.did;
84
+ result.toDID = sendTokenArgs.legs[0].fungible.receiver.did;
85
+ result.amount = sendTokenArgs.legs[0].fungible.amount.toString();
86
+ result.assetId = sendTokenArgs.legs[0].fungible.assetId;
87
+ result.memo = sendTokenArgs.instructionMemo;
88
+ }
89
+ else if (this.type === sdk_core_1.TransactionType.RejectInstruction) {
90
+ const rejectInstructionArgs = txMethod;
91
+ result.instructionId = rejectInstructionArgs.id;
92
+ result.portfolioDID = rejectInstructionArgs.portfolio.did;
93
+ result.amount = '0'; // Reject instruction does not transfer any value
94
+ }
95
+ else {
96
+ return super.toJson();
97
+ }
98
+ return result;
99
+ }
100
+ /**
101
+ * Load the input and output data on this transaction.
102
+ */
103
+ loadInputsAndOutputs() {
104
+ super.loadInputsAndOutputs();
105
+ const decodedTx = (0, txwrapper_polkadot_1.decode)(this._substrateTransaction, {
106
+ metadataRpc: this._substrateTransaction.metadataRpc,
107
+ registry: this._registry,
108
+ isImmortalEra: abstract_substrate_1.utils.isZeroHex(this._substrateTransaction.era),
109
+ });
110
+ if (this.type === sdk_core_1.TransactionType.WalletInitialization) {
111
+ this.decodeInputsAndOutputsForRegisterDidWithCDD(decodedTx);
112
+ }
113
+ else if (this.type === sdk_core_1.TransactionType.TrustLine) {
114
+ this.decodeInputsAndOutputsForPreApproveAsset(decodedTx);
115
+ }
116
+ else if (this.type === sdk_core_1.TransactionType.SendToken) {
117
+ this.decodeInputsAndOutputsForSendToken(decodedTx);
118
+ }
119
+ else if (this.type === sdk_core_1.TransactionType.RejectInstruction) {
120
+ this.decodeInputsAndOutputsForRejectInstruction(decodedTx);
121
+ }
122
+ }
123
+ decodeInputsAndOutputsForRegisterDidWithCDD(decodedTx) {
124
+ const txMethod = decodedTx.method.args;
125
+ const keypairDest = new abstract_substrate_1.KeyPair({
126
+ pub: Buffer.from((0, keyring_1.decodeAddress)(txMethod.targetAccount)).toString('hex'),
127
+ });
128
+ const to = keypairDest.getAddress(this.getAddressFormat());
129
+ const value = '0';
130
+ const from = decodedTx.address;
131
+ this._inputs.push({
132
+ address: from,
133
+ value,
134
+ coin: this._coinConfig.name,
135
+ });
136
+ this._outputs.push({
137
+ address: to,
138
+ value,
139
+ coin: this._coinConfig.name,
140
+ });
141
+ }
142
+ decodeInputsAndOutputsForPreApproveAsset(decodedTx) {
143
+ const txMethod = decodedTx.method.args;
144
+ const sender = decodedTx.address;
145
+ const value = '0'; // Pre-approval does not transfer any value
146
+ const tokenName = this.getTokenNameByAssetId(txMethod.assetId);
147
+ this._inputs.push({
148
+ address: sender,
149
+ value,
150
+ coin: tokenName,
151
+ });
152
+ this._outputs.push({
153
+ address: sender, // In pre-approval, the output is the same as the input
154
+ value,
155
+ coin: tokenName,
156
+ });
157
+ }
158
+ decodeInputsAndOutputsForSendToken(decodedTx) {
159
+ const txMethod = decodedTx.method.args;
160
+ const fromDID = txMethod.legs[0].fungible.sender.did;
161
+ const toDID = txMethod.legs[0].fungible.receiver.did;
162
+ const amount = txMethod.legs[0].fungible.amount.toString();
163
+ const assetId = txMethod.legs[0].fungible.assetId;
164
+ const tokenName = this.getTokenNameByAssetId(assetId);
165
+ this._inputs.push({
166
+ address: fromDID,
167
+ value: amount,
168
+ coin: tokenName,
169
+ });
170
+ this._outputs.push({
171
+ address: toDID,
172
+ value: amount,
173
+ coin: tokenName,
174
+ });
175
+ }
176
+ decodeInputsAndOutputsForRejectInstruction(decodedTx) {
177
+ const txMethod = decodedTx.method.args;
178
+ const portfolioDID = txMethod.portfolio.did;
179
+ const value = '0'; // Reject instruction does not transfer any value
180
+ this._inputs.push({
181
+ address: portfolioDID,
182
+ value,
183
+ coin: this._coinConfig.name,
184
+ });
185
+ this._outputs.push({
186
+ address: portfolioDID,
187
+ value,
188
+ coin: this._coinConfig.name,
189
+ });
190
+ }
191
+ }
192
+ exports.Transaction = Transaction;
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVFQUFxRztBQUNyRyxtREFBZ0Y7QUFDaEYsc0VBQWtFO0FBQ2xFLCtDQUFrRDtBQUNsRCxpREFBdUQ7QUFTdkQsb0RBQWlDO0FBRWpDLE1BQWEsV0FBWSxTQUFRLGdDQUFvQjtJQUNuRDs7Ozs7O09BTUc7SUFDTyxnQkFBZ0I7UUFDeEIsT0FBTyxlQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxPQUFlO1FBQzNDLGlFQUFpRTtRQUNqRSxJQUFJLFVBQThCLENBQUM7UUFDbkMsZUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLElBQUksSUFBSSxZQUFZLG1CQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDMUQsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywrQkFBK0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLDJCQUFNLEVBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lB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QixLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sMENBQTBDLENBQUMsU0FBb0I7UUFDckUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFvQyxDQUFDO1FBQ3ZFLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLGlEQUFpRDtRQUVwRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixPQUFPLEVBQUUsWUFBWTtZQUNyQixLQUFLO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtTQUM1QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixPQUFPLEVBQUUsWUFBWTtZQUNyQixLQUFLO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsTUQsa0NBa01DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgU3Vic3RyYXRlVHJhbnNhY3Rpb24sIHV0aWxzLCBLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBjb25zdHJ1Y3QsIGRlY29kZSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IGRlY29kZUFkZHJlc3MgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBjb2lucywgUG9seXhDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBEZWNvZGVkVHgsXG4gIFJlZ2lzdGVyRGlkV2l0aENEREFyZ3MsXG4gIFByZUFwcHJvdmVBc3NldEFyZ3MsXG4gIFR4RGF0YSxcbiAgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3MsXG4gIFJlamVjdEluc3RydWN0aW9uQnVpbGRlckFyZ3MsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHBvbHl4VXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIFN1YnN0cmF0ZVRyYW5zYWN0aW9uIHtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBnZXRBZGRyZXNzRm9ybWF0IG1ldGhvZCB0byByZXR1cm4gZGlmZmVyZW50IHZhbHVlcyBiYXNlZCBvbiBuZXR3b3JrIHR5cGVcbiAgICogUmV0dXJucyAxMiBmb3IgbWFpbm5ldCBhbmQgNDIgZm9yIHRlc3RuZXRcbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGFkZHJlc3MgZm9ybWF0IHRvIHVzZVxuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRBZGRyZXNzRm9ybWF0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBvbHl4VXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZmluZCBhIHRva2VuIG5hbWUgYnkgYXNzZXRJZFxuICAgKiBAcGFyYW0gYXNzZXRJZCBUaGUgYXNzZXRJZCB0byBzZWFyY2ggZm9yXG4gICAqIEByZXR1cm5zIFRoZSB0b2tlbiBuYW1lIGlmIGZvdW5kXG4gICAqIEB0aHJvd3Mge0ludmFsaWRUcmFuc2FjdGlvbkVycm9yfSBJZiBubyBtYXRjaGluZyB0b2tlbiBpcyBmb3VuZFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRUb2tlbk5hbWVCeUFzc2V0SWQoYXNzZXRJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBTZWFyY2ggdGhyb3VnaCBhbGwgY29pbnMgdG8gZmluZCB0aGUgb25lIHdpdGggbWF0Y2hpbmcgYXNzZXRJZFxuICAgIGxldCBmb3VuZFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29pbnMuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBQb2x5eENvaW4gJiYgY29pbi5hc3NldElkID09PSBhc3NldElkKSB7XG4gICAgICAgIGZvdW5kVG9rZW4gPSBjb2luLm5hbWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWZvdW5kVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgTm8gdG9rZW4gZm91bmQgZm9yIGFzc2V0SWQ6ICR7YXNzZXRJZH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmRUb2tlbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZGVjb2RlKHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICBpc0ltbW9ydGFsRXJhOiB1dGlscy5pc1plcm9IZXgodGhpcy5fc3Vic3RyYXRlVHJhbnNhY3Rpb24uZXJhKSxcbiAgICB9KSBhcyB1bmtub3duIGFzIERlY29kZWRUeDtcblxuICAgIGNvbnN0IHJlc3VsdDogVHhEYXRhID0ge1xuICAgICAgaWQ6IGNvbnN0cnVjdC50eEhhc2godGhpcy50b0Jyb2FkY2FzdEZvcm1hdCgpKSxcbiAgICAgIHNlbmRlcjogZGVjb2RlZFR4LmFkZHJlc3MsXG4gICAgICByZWZlcmVuY2VCbG9jazogZGVjb2RlZFR4LmJsb2NrSGFzaCxcbiAgICAgIGJsb2NrTnVtYmVyOiBkZWNvZGVkVHguYmxvY2tOdW1iZXIsXG4gICAgICBnZW5lc2lzSGFzaDogZGVjb2RlZFR4LmdlbmVzaXNIYXNoLFxuICAgICAgbm9uY2U6IGRlY29kZWRUeC5ub25jZSxcbiAgICAgIHNwZWNWZXJzaW9uOiBkZWNvZGVkVHguc3BlY1ZlcnNpb24sXG4gICAgICB0cmFuc2FjdGlvblZlcnNpb246IGRlY29kZWRUeC50cmFuc2FjdGlvblZlcnNpb24sXG4gICAgICBlcmFQZXJpb2Q6IGRlY29kZWRUeC5lcmFQZXJpb2QsXG4gICAgICBjaGFpbk5hbWU6IHRoaXMuX2NoYWluTmFtZSxcbiAgICAgIHRpcDogZGVjb2RlZFR4LnRpcCA/IE51bWJlcihkZWNvZGVkVHgudGlwKSA6IDAsXG4gICAgfTtcblxuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzO1xuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbikge1xuICAgICAgY29uc3QgeyB0YXJnZXRBY2NvdW50IH0gPSB0eE1ldGhvZCBhcyBSZWdpc3RlckRpZFdpdGhDRERBcmdzO1xuICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0YXJnZXRBY2NvdW50KSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSk7XG4gICAgICByZXN1bHQudG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHRoaXMuZ2V0QWRkcmVzc0Zvcm1hdCgpKTtcbiAgICAgIHJlc3VsdC5hbW91bnQgPSAnMCc7IC8vIFJlZ2lzdGVyRGlkV2l0aENERCBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRydXN0TGluZSkge1xuICAgICAgY29uc3QgeyBhc3NldElkIH0gPSB0eE1ldGhvZCBhcyBQcmVBcHByb3ZlQXNzZXRBcmdzO1xuICAgICAgcmVzdWx0LmFzc2V0SWQgPSBhc3NldElkO1xuICAgICAgcmVzdWx0LnNlbmRlciA9IGRlY29kZWRUeC5hZGRyZXNzO1xuICAgICAgcmVzdWx0LmFtb3VudCA9ICcwJzsgLy8gUHJlLWFwcHJvdmFsIGRvZXMgbm90IHRyYW5zZmVyIGFueSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuKSB7XG4gICAgICBjb25zdCBzZW5kVG9rZW5BcmdzID0gdHhNZXRob2QgYXMgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3M7XG4gICAgICByZXN1bHQuZnJvbURJRCA9IHNlbmRUb2tlbkFyZ3MubGVnc1swXS5mdW5naWJsZS5zZW5kZXIuZGlkO1xuICAgICAgcmVzdWx0LnRvRElEID0gc2VuZFRva2VuQXJncy5sZWdzWzBdLmZ1bmdpYmxlLnJlY2VpdmVyLmRpZDtcbiAgICAgIHJlc3VsdC5hbW91bnQgPSBzZW5kVG9rZW5BcmdzLmxlZ3NbMF0uZnVuZ2libGUuYW1vdW50LnRvU3RyaW5nKCk7XG4gICAgICByZXN1bHQuYXNzZXRJZCA9IHNlbmRUb2tlbkFyZ3MubGVnc1swXS5mdW5naWJsZS5hc3NldElkO1xuICAgICAgcmVzdWx0Lm1lbW8gPSBzZW5kVG9rZW5BcmdzLmluc3RydWN0aW9uTWVtbztcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlJlamVjdEluc3RydWN0aW9uKSB7XG4gICAgICBjb25zdCByZWplY3RJbnN0cnVjdGlvbkFyZ3MgPSB0eE1ldGhvZCBhcyBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXJBcmdzO1xuICAgICAgcmVzdWx0Lmluc3RydWN0aW9uSWQgPSByZWplY3RJbnN0cnVjdGlvbkFyZ3MuaWQgYXMgc3RyaW5nO1xuICAgICAgcmVzdWx0LnBvcnRmb2xpb0RJRCA9IHJlamVjdEluc3RydWN0aW9uQXJncy5wb3J0Zm9saW8uZGlkIGFzIHN0cmluZztcbiAgICAgIHJlc3VsdC5hbW91bnQgPSAnMCc7IC8vIFJlamVjdCBpbnN0cnVjdGlvbiBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN1cGVyLnRvSnNvbigpIGFzIFR4RGF0YTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgc3VwZXIubG9hZElucHV0c0FuZE91dHB1dHMoKTtcblxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGRlY29kZSh0aGlzLl9zdWJzdHJhdGVUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgaXNJbW1vcnRhbEVyYTogdXRpbHMuaXNaZXJvSGV4KHRoaXMuX3N1YnN0cmF0ZVRyYW5zYWN0aW9uLmVyYSksXG4gICAgfSkgYXMgdW5rbm93biBhcyBEZWNvZGVkVHg7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclJlZ2lzdGVyRGlkV2l0aENERChkZWNvZGVkVHgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJ1c3RMaW5lKSB7XG4gICAgICB0aGlzLmRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JQcmVBcHByb3ZlQXNzZXQoZGVjb2RlZFR4KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbikge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yU2VuZFRva2VuKGRlY29kZWRUeCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5SZWplY3RJbnN0cnVjdGlvbikge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUmVqZWN0SW5zdHJ1Y3Rpb24oZGVjb2RlZFR4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JSZWdpc3RlckRpZFdpdGhDREQoZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBSZWdpc3RlckRpZFdpdGhDRERBcmdzO1xuICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKHR4TWV0aG9kLnRhcmdldEFjY291bnQpKS50b1N0cmluZygnaGV4JyksXG4gICAgfSk7XG4gICAgY29uc3QgdG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHRoaXMuZ2V0QWRkcmVzc0Zvcm1hdCgpKTtcbiAgICBjb25zdCB2YWx1ZSA9ICcwJztcbiAgICBjb25zdCBmcm9tID0gZGVjb2RlZFR4LmFkZHJlc3M7XG5cbiAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBmcm9tLFxuICAgICAgdmFsdWUsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogdG8sXG4gICAgICB2YWx1ZSxcbiAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclByZUFwcHJvdmVBc3NldChkZWNvZGVkVHg6IERlY29kZWRUeCkge1xuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzIGFzIFByZUFwcHJvdmVBc3NldEFyZ3M7XG4gICAgY29uc3Qgc2VuZGVyID0gZGVjb2RlZFR4LmFkZHJlc3M7XG4gICAgY29uc3QgdmFsdWUgPSAnMCc7IC8vIFByZS1hcHByb3ZhbCBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcbiAgICBjb25zdCB0b2tlbk5hbWUgPSB0aGlzLmdldFRva2VuTmFtZUJ5QXNzZXRJZCh0eE1ldGhvZC5hc3NldElkKTtcblxuICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHNlbmRlcixcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdG9rZW5OYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHNlbmRlciwgLy8gSW4gcHJlLWFwcHJvdmFsLCB0aGUgb3V0cHV0IGlzIHRoZSBzYW1lIGFzIHRoZSBpbnB1dFxuICAgICAgdmFsdWUsXG4gICAgICBjb2luOiB0b2tlbk5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JTZW5kVG9rZW4oZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzQXJncztcbiAgICBjb25zdCBmcm9tRElEID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5zZW5kZXIuZGlkO1xuICAgIGNvbnN0IHRvRElEID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5yZWNlaXZlci5kaWQ7XG4gICAgY29uc3QgYW1vdW50ID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5hbW91bnQudG9TdHJpbmcoKTtcbiAgICBjb25zdCBhc3NldElkID0gdHhNZXRob2QubGVnc1swXS5mdW5naWJsZS5hc3NldElkO1xuICAgIGNvbnN0IHRva2VuTmFtZSA9IHRoaXMuZ2V0VG9rZW5OYW1lQnlBc3NldElkKGFzc2V0SWQpO1xuXG4gICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogZnJvbURJRCxcbiAgICAgIHZhbHVlOiBhbW91bnQsXG4gICAgICBjb2luOiB0b2tlbk5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogdG9ESUQsXG4gICAgICB2YWx1ZTogYW1vdW50LFxuICAgICAgY29pbjogdG9rZW5OYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yUmVqZWN0SW5zdHJ1Y3Rpb24oZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXJBcmdzO1xuICAgIGNvbnN0IHBvcnRmb2xpb0RJRCA9IHR4TWV0aG9kLnBvcnRmb2xpby5kaWQ7XG4gICAgY29uc3QgdmFsdWUgPSAnMCc7IC8vIFJlamVjdCBpbnN0cnVjdGlvbiBkb2VzIG5vdCB0cmFuc2ZlciBhbnkgdmFsdWVcblxuICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHBvcnRmb2xpb0RJRCxcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHBvcnRmb2xpb0RJRCxcbiAgICAgIHZhbHVlLFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -2,14 +2,34 @@ import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
2
2
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
3
  import { TransferBuilder } from './transferBuilder';
4
4
  import { RegisterDidWithCDDBuilder } from './registerDidWithCDDBuilder';
5
+ import { BondExtraBuilder } from './bondExtraBuilder';
6
+ import { BatchStakingBuilder } from './batchStakingBuilder';
7
+ import { BatchUnstakingBuilder } from './batchUnstakingBuilder';
8
+ import { UnbondBuilder } from './unbondBuilder';
9
+ import { WithdrawUnbondedBuilder } from './withdrawUnbondedBuilder';
5
10
  import { Interface, TransactionBuilder } from './';
11
+ import { TxMethod } from './iface';
12
+ import { Transaction as BaseTransaction } from '@bitgo-beta/abstract-substrate';
13
+ import { Transaction as PolyxTransaction } from './transaction';
14
+ import { PreApproveAssetBuilder } from './preApproveAssetBuilder';
15
+ import { TokenTransferBuilder } from './tokenTransferBuilder';
16
+ import { RejectInstructionBuilder } from './rejectInstructionBuilder';
17
+ export type SupportedTransaction = BaseTransaction | PolyxTransaction;
6
18
  export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
7
19
  protected _material: Interface.Material;
8
20
  constructor(_coinConfig: Readonly<CoinConfig>);
9
21
  getTransferBuilder(): TransferBuilder;
10
22
  getRegisterDidWithCDDBuilder(): RegisterDidWithCDDBuilder;
23
+ getPreApproveAssetBuilder(): PreApproveAssetBuilder;
24
+ getTokenTransferBuilder(): TokenTransferBuilder;
25
+ getRejectInstructionBuilder(): RejectInstructionBuilder;
26
+ getBondExtraBuilder(): BondExtraBuilder;
27
+ getBatchBuilder(): BatchStakingBuilder;
28
+ getBatchUnstakingBuilder(): BatchUnstakingBuilder;
29
+ getUnbondBuilder(): UnbondBuilder;
30
+ getWithdrawUnbondedBuilder(): WithdrawUnbondedBuilder;
11
31
  getWalletInitializationBuilder(): void;
12
- from(rawTxn: string): TransactionBuilder;
32
+ from(rawTxn: string): TransactionBuilder<TxMethod, SupportedTransaction>;
13
33
  material(material: Interface.Material): this;
14
34
  private getBuilder;
15
35
  }
@@ -1 +1 @@
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;AAExE,OAAO,EAAE,SAAS,EAAqB,kBAAkB,EAAE,MAAM,IAAI,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,8BAA8B,IAAI,IAAI;IAItC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAMxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI;IAK5C,OAAO,CAAC,UAAU;CAgBnB"}
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,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAqB,kBAAkB,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAgC,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,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,yBAAyB,IAAI,sBAAsB;IAInD,uBAAuB,IAAI,oBAAoB;IAI/C,2BAA2B,IAAI,wBAAwB;IAIvD,mBAAmB,IAAI,gBAAgB;IAIvC,eAAe,IAAI,mBAAmB;IAItC,wBAAwB,IAAI,qBAAqB;IAIjD,gBAAgB,IAAI,aAAa;IAIjC,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;CAqDnB"}
@@ -8,8 +8,17 @@ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
8
  const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
9
  const transferBuilder_1 = require("./transferBuilder");
10
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 unbondBuilder_1 = require("./unbondBuilder");
15
+ const withdrawUnbondedBuilder_1 = require("./withdrawUnbondedBuilder");
11
16
  const utils_1 = __importDefault(require("./utils"));
12
17
  const _1 = require("./");
18
+ const iface_1 = require("./iface");
19
+ const preApproveAssetBuilder_1 = require("./preApproveAssetBuilder");
20
+ const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
21
+ const rejectInstructionBuilder_1 = require("./rejectInstructionBuilder");
13
22
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
14
23
  constructor(_coinConfig) {
15
24
  super(_coinConfig);
@@ -21,6 +30,30 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
21
30
  getRegisterDidWithCDDBuilder() {
22
31
  return new registerDidWithCDDBuilder_1.RegisterDidWithCDDBuilder(this._coinConfig).material(this._material);
23
32
  }
33
+ getPreApproveAssetBuilder() {
34
+ return new preApproveAssetBuilder_1.PreApproveAssetBuilder(this._coinConfig).material(this._material);
35
+ }
36
+ getTokenTransferBuilder() {
37
+ return new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig).material(this._material);
38
+ }
39
+ getRejectInstructionBuilder() {
40
+ return new rejectInstructionBuilder_1.RejectInstructionBuilder(this._coinConfig).material(this._material);
41
+ }
42
+ getBondExtraBuilder() {
43
+ return new bondExtraBuilder_1.BondExtraBuilder(this._coinConfig).material(this._material);
44
+ }
45
+ getBatchBuilder() {
46
+ return new batchStakingBuilder_1.BatchStakingBuilder(this._coinConfig).material(this._material);
47
+ }
48
+ getBatchUnstakingBuilder() {
49
+ return new batchUnstakingBuilder_1.BatchUnstakingBuilder(this._coinConfig).material(this._material);
50
+ }
51
+ getUnbondBuilder() {
52
+ return new unbondBuilder_1.UnbondBuilder(this._coinConfig).material(this._material);
53
+ }
54
+ getWithdrawUnbondedBuilder() {
55
+ return new withdrawUnbondedBuilder_1.WithdrawUnbondedBuilder(this._coinConfig).material(this._material);
56
+ }
24
57
  getWalletInitializationBuilder() {
25
58
  throw new sdk_core_1.NotImplementedError(`walletInitialization for ${this._coinConfig.name} not implemented`);
26
59
  }
@@ -43,13 +76,56 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
43
76
  if (methodName === _1.Interface.MethodNames.TransferWithMemo) {
44
77
  return this.getTransferBuilder();
45
78
  }
46
- else if (methodName === _1.Interface.MethodNames.RegisterDidWithCDD) {
79
+ else if (methodName === iface_1.MethodNames.RegisterDidWithCDD) {
47
80
  return this.getRegisterDidWithCDDBuilder();
48
81
  }
49
- else {
50
- throw new Error('Transaction cannot be parsed or has an unsupported transaction type');
82
+ else if (methodName === iface_1.MethodNames.PreApproveAsset) {
83
+ return this.getPreApproveAssetBuilder();
84
+ }
85
+ else if (methodName === iface_1.MethodNames.AddAndAffirmWithMediators) {
86
+ return this.getTokenTransferBuilder();
87
+ }
88
+ else if (methodName === iface_1.MethodNames.RejectInstruction) {
89
+ return this.getRejectInstructionBuilder();
90
+ }
91
+ else if (methodName === 'bondExtra') {
92
+ return this.getBondExtraBuilder();
93
+ }
94
+ else if (methodName === 'batchAll') {
95
+ const args = decodedTxn.method.args;
96
+ if (args.calls && args.calls.length === 2) {
97
+ // Decode method names from the calls using utils.decodeMethodName
98
+ const firstCallMethod = utils_1.default.decodeMethodName(args.calls[0], registry);
99
+ const secondCallMethod = utils_1.default.decodeMethodName(args.calls[1], registry);
100
+ // Check for batch staking pattern: bond + nominate
101
+ if (firstCallMethod === 'bond' && secondCallMethod === 'nominate') {
102
+ return this.getBatchBuilder();
103
+ }
104
+ // Check for batch unstaking pattern: chill + unbond
105
+ if (firstCallMethod === 'chill' && secondCallMethod === 'unbond') {
106
+ return this.getBatchUnstakingBuilder();
107
+ }
108
+ }
109
+ // Fall back to general batch builder for other batchAll cases
110
+ return this.getBatchBuilder();
111
+ }
112
+ else if (methodName === 'batch') {
113
+ return this.getBatchBuilder();
114
+ }
115
+ else if (methodName === 'bond') {
116
+ return this.getBatchBuilder();
117
+ }
118
+ else if (methodName === 'nominate') {
119
+ return this.getBatchBuilder();
120
+ }
121
+ else if (methodName === 'unbond') {
122
+ return this.getUnbondBuilder();
123
+ }
124
+ else if (methodName === 'withdrawUnbonded') {
125
+ return this.getWithdrawUnbondedBuilder();
51
126
  }
127
+ throw new Error('Transaction cannot be parsed or has an unsupported transaction type');
52
128
  }
53
129
  }
54
130
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBMEY7QUFFMUYsc0VBQXVEO0FBQ3ZELHVEQUFvRDtBQUNwRCwyRUFBd0U7QUFDeEUsb0RBQTRCO0FBQzVCLHlCQUFzRTtBQUV0RSxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUcxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLGVBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsT0FBTyxJQUFJLHFEQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLDhCQUFtQixDQUFDLDRCQUE0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQWM7UUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBNEI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQWM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsb0JBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FBRyxJQUFBLDJCQUFNLEVBQUMsTUFBTSxFQUFFO1lBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDcEMsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7UUFDM0MsSUFBSSxVQUFVLEtBQUssWUFBUyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkMsQ0FBQzthQUFNLElBQUksVUFBVSxLQUFLLFlBQVMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNuRSxPQUFPLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEvQ0QsOERBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIE5vdEltcGxlbWVudGVkRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyIH0gZnJvbSAnLi9yZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEludGVyZmFjZSwgU2luZ2xldG9uUmVnaXN0cnksIFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIHByb3RlY3RlZCBfbWF0ZXJpYWw6IEludGVyZmFjZS5NYXRlcmlhbDtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChfY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUpO1xuICB9XG5cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKCk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0UmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlcigpOiBSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKGB3YWxsZXRJbml0aWFsaXphdGlvbiBmb3IgJHt0aGlzLl9jb2luQ29uZmlnLm5hbWV9IG5vdCBpbXBsZW1lbnRlZGApO1xuICB9XG5cbiAgZnJvbShyYXdUeG46IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgYnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcihyYXdUeG4pO1xuICAgIGJ1aWxkZXIuZnJvbShyYXdUeG4pO1xuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgbWF0ZXJpYWwobWF0ZXJpYWw6IEludGVyZmFjZS5NYXRlcmlhbCk6IHRoaXMge1xuICAgIHRoaXMuX21hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIGdldEJ1aWxkZXIocmF3VHhuOiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UodGhpcy5fbWF0ZXJpYWwpO1xuICAgIGNvbnN0IGRlY29kZWRUeG4gPSBkZWNvZGUocmF3VHhuLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogcmVnaXN0cnksXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXRob2ROYW1lID0gZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWU7XG4gICAgaWYgKG1ldGhvZE5hbWUgPT09IEludGVyZmFjZS5NZXRob2ROYW1lcy5UcmFuc2ZlcldpdGhNZW1vKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IEludGVyZmFjZS5NZXRob2ROYW1lcy5SZWdpc3RlckRpZFdpdGhDREQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmFuc2FjdGlvbiBjYW5ub3QgYmUgcGFyc2VkIG9yIGhhcyBhbiB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBMEY7QUFFMUYsc0VBQXVEO0FBQ3ZELHVEQUFvRDtBQUNwRCwyRUFBd0U7QUFDeEUseURBQXNEO0FBQ3RELCtEQUE0RDtBQUM1RCxtRUFBZ0U7QUFDaEUsbURBQWdEO0FBQ2hELHVFQUFvRTtBQUNwRSxvREFBNEI7QUFDNUIseUJBQXNFO0FBQ3RFLG1DQUFpRTtBQUdqRSxxRUFBa0U7QUFDbEUsaUVBQThEO0FBQzlELHlFQUFzRTtBQUl0RSxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUcxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLGVBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsT0FBTyxJQUFJLHFEQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLCtDQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FB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QUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEMsQ0FBQzthQUFNLElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDakMsQ0FBQzthQUFNLElBQUksVUFBVSxLQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUMzQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDRjtBQXBIRCw4REFvSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGRlY29kZSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIgfSBmcm9tICcuL3JlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXInO1xuaW1wb3J0IHsgQm9uZEV4dHJhQnVpbGRlciB9IGZyb20gJy4vYm9uZEV4dHJhQnVpbGRlcic7XG5pbXBvcnQgeyBCYXRjaFN0YWtpbmdCdWlsZGVyIH0gZnJvbSAnLi9iYXRjaFN0YWtpbmdCdWlsZGVyJztcbmltcG9ydCB7IEJhdGNoVW5zdGFraW5nQnVpbGRlciB9IGZyb20gJy4vYmF0Y2hVbnN0YWtpbmdCdWlsZGVyJztcbmltcG9ydCB7IFVuYm9uZEJ1aWxkZXIgfSBmcm9tICcuL3VuYm9uZEJ1aWxkZXInO1xuaW1wb3J0IHsgV2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXIgfSBmcm9tICcuL3dpdGhkcmF3VW5ib25kZWRCdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEludGVyZmFjZSwgU2luZ2xldG9uUmVnaXN0cnksIFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vJztcbmltcG9ydCB7IFR4TWV0aG9kLCBCYXRjaENhbGxPYmplY3QsIE1ldGhvZE5hbWVzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb24gfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1zdWJzdHJhdGUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgUG9seXhUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgUHJlQXBwcm92ZUFzc2V0QnVpbGRlciB9IGZyb20gJy4vcHJlQXBwcm92ZUFzc2V0QnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgUmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9yZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgdHlwZSBTdXBwb3J0ZWRUcmFuc2FjdGlvbiA9IEJhc2VUcmFuc2FjdGlvbiB8IFBvbHl4VHJhbnNhY3Rpb247XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBwcm90ZWN0ZWQgX21hdGVyaWFsOiBJbnRlcmZhY2UuTWF0ZXJpYWw7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX21hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoX2NvaW5Db25maWcubmV0d29yay50eXBlKTtcbiAgfVxuXG4gIGdldFRyYW5zZmVyQnVpbGRlcigpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIoKTogUmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldFByZUFwcHJvdmVBc3NldEJ1aWxkZXIoKTogUHJlQXBwcm92ZUFzc2V0QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBQcmVBcHByb3ZlQXNzZXRCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldFRva2VuVHJhbnNmZXJCdWlsZGVyKCk6IFRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRva2VuVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldFJlamVjdEluc3RydWN0aW9uQnVpbGRlcigpOiBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgUmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldEJvbmRFeHRyYUJ1aWxkZXIoKTogQm9uZEV4dHJhQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBCb25kRXh0cmFCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldEJhdGNoQnVpbGRlcigpOiBCYXRjaFN0YWtpbmdCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJhdGNoU3Rha2luZ0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0QmF0Y2hVbnN0YWtpbmdCdWlsZGVyKCk6IEJhdGNoVW5zdGFraW5nQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBCYXRjaFVuc3Rha2luZ0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0VW5ib25kQnVpbGRlcigpOiBVbmJvbmRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFVuYm9uZEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0V2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXIoKTogV2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgV2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKGB3YWxsZXRJbml0aWFsaXphdGlvbiBmb3IgJHt0aGlzLl9jb2luQ29uZmlnLm5hbWV9IG5vdCBpbXBsZW1lbnRlZGApO1xuICB9XG5cbiAgZnJvbShyYXdUeG46IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlcjxUeE1ldGhvZCwgU3VwcG9ydGVkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKHJhd1R4bik7XG4gICAgYnVpbGRlci5mcm9tKHJhd1R4bik7XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICBtYXRlcmlhbChtYXRlcmlhbDogSW50ZXJmYWNlLk1hdGVyaWFsKTogdGhpcyB7XG4gICAgdGhpcy5fbWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnVpbGRlcihyYXdUeG46IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlcjxUeE1ldGhvZCwgU3VwcG9ydGVkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCByZWdpc3RyeSA9IFNpbmdsZXRvblJlZ2lzdHJ5LmdldEluc3RhbmNlKHRoaXMuX21hdGVyaWFsKTtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1R4biwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgcmVnaXN0cnk6IHJlZ2lzdHJ5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lO1xuICAgIGlmIChtZXRob2ROYW1lID09PSBJbnRlcmZhY2UuTWV0aG9kTmFtZXMuVHJhbnNmZXJXaXRoTWVtbykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSBNZXRob2ROYW1lcy5SZWdpc3RlckRpZFdpdGhDREQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IE1ldGhvZE5hbWVzLlByZUFwcHJvdmVBc3NldCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJlQXBwcm92ZUFzc2V0QnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gTWV0aG9kTmFtZXMuQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9ycykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW5UcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IE1ldGhvZE5hbWVzLlJlamVjdEluc3RydWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdib25kRXh0cmEnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRCb25kRXh0cmFCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSAnYmF0Y2hBbGwnKSB7XG4gICAgICBjb25zdCBhcmdzID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB7IGNhbGxzPzogQmF0Y2hDYWxsT2JqZWN0W10gfTtcblxuICAgICAgaWYgKGFyZ3MuY2FsbHMgJiYgYXJncy5jYWxscy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgLy8gRGVjb2RlIG1ldGhvZCBuYW1lcyBmcm9tIHRoZSBjYWxscyB1c2luZyB1dGlscy5kZWNvZGVNZXRob2ROYW1lXG4gICAgICAgIGNvbnN0IGZpcnN0Q2FsbE1ldGhvZCA9IHV0aWxzLmRlY29kZU1ldGhvZE5hbWUoYXJncy5jYWxsc1swXSwgcmVnaXN0cnkpO1xuICAgICAgICBjb25zdCBzZWNvbmRDYWxsTWV0aG9kID0gdXRpbHMuZGVjb2RlTWV0aG9kTmFtZShhcmdzLmNhbGxzWzFdLCByZWdpc3RyeSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIGJhdGNoIHN0YWtpbmcgcGF0dGVybjogYm9uZCArIG5vbWluYXRlXG4gICAgICAgIGlmIChmaXJzdENhbGxNZXRob2QgPT09ICdib25kJyAmJiBzZWNvbmRDYWxsTWV0aG9kID09PSAnbm9taW5hdGUnKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QmF0Y2hCdWlsZGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgZm9yIGJhdGNoIHVuc3Rha2luZyBwYXR0ZXJuOiBjaGlsbCArIHVuYm9uZFxuICAgICAgICBpZiAoZmlyc3RDYWxsTWV0aG9kID09PSAnY2hpbGwnICYmIHNlY29uZENhbGxNZXRob2QgPT09ICd1bmJvbmQnKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QmF0Y2hVbnN0YWtpbmdCdWlsZGVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgYmFjayB0byBnZW5lcmFsIGJhdGNoIGJ1aWxkZXIgZm9yIG90aGVyIGJhdGNoQWxsIGNhc2VzXG4gICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaEJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdiYXRjaCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ2JvbmQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaEJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdub21pbmF0ZScpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ3VuYm9uZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFVuYm9uZEJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICd3aXRoZHJhd1VuYm9uZGVkJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0V2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXIoKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbm5vdCBiZSBwYXJzZWQgb3IgaGFzIGFuIHVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgfVxufVxuIl19
@@ -1,8 +1,10 @@
1
- import { TransactionBuilder, Transaction } from '@bitgo-beta/abstract-substrate';
1
+ import { Transaction } from './transaction';
2
+ import { TxMethod } from './iface';
3
+ import { PolyxBaseBuilder } from './baseBuilder';
2
4
  import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
3
5
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
6
  import { BaseAddress, TransactionType } from '@bitgo-beta/sdk-core';
5
- export declare class TransferBuilder extends TransactionBuilder {
7
+ export declare class TransferBuilder extends PolyxBaseBuilder<TxMethod, Transaction> {
6
8
  protected _amount: string;
7
9
  protected _to: string;
8
10
  protected _memo: string;