@bitgo-beta/sdk-coin-canton 1.0.1-beta.62 → 1.0.1-beta.621
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.
- package/dist/src/canton.d.ts +22 -1
- package/dist/src/canton.d.ts.map +1 -1
- package/dist/src/canton.js +267 -10
- package/dist/src/cantonToken.d.ts +19 -0
- package/dist/src/cantonToken.d.ts.map +1 -0
- package/dist/src/cantonToken.js +52 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/lib/allocationAllocateBuilder.d.ts +126 -0
- package/dist/src/lib/allocationAllocateBuilder.d.ts.map +1 -0
- package/dist/src/lib/allocationAllocateBuilder.js +250 -0
- package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts +67 -0
- package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
- package/dist/src/lib/allocationAllocateWithdrawnBuilder.js +130 -0
- package/dist/src/lib/allocationRejectBuilder.d.ts +51 -0
- package/dist/src/lib/allocationRejectBuilder.d.ts.map +1 -0
- package/dist/src/lib/allocationRejectBuilder.js +107 -0
- package/dist/src/lib/allocationRequestBuilder.d.ts +116 -0
- package/dist/src/lib/allocationRequestBuilder.d.ts.map +1 -0
- package/dist/src/lib/allocationRequestBuilder.js +248 -0
- package/dist/src/lib/cantonCommandBuilder.d.ts +72 -0
- package/dist/src/lib/cantonCommandBuilder.d.ts.map +1 -0
- package/dist/src/lib/cantonCommandBuilder.js +173 -0
- package/dist/src/lib/clearSigning.d.ts +58 -0
- package/dist/src/lib/clearSigning.d.ts.map +1 -0
- package/dist/src/lib/clearSigning.js +66 -0
- package/dist/src/lib/constant.d.ts +2 -0
- package/dist/src/lib/constant.d.ts.map +1 -1
- package/dist/src/lib/constant.js +4 -2
- package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts +56 -0
- package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts.map +1 -0
- package/dist/src/lib/cosignDelegationAcceptBuilder.js +112 -0
- package/dist/src/lib/cosignDelegationProposalBuilder.d.ts +60 -0
- package/dist/src/lib/cosignDelegationProposalBuilder.d.ts.map +1 -0
- package/dist/src/lib/cosignDelegationProposalBuilder.js +111 -0
- package/dist/src/lib/iface.d.ts +143 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +3 -1
- package/dist/src/lib/index.d.ts +13 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +29 -2
- package/dist/src/lib/messages/cantonBaseMessage.d.ts +16 -0
- package/dist/src/lib/messages/cantonBaseMessage.d.ts.map +1 -0
- package/dist/src/lib/messages/cantonBaseMessage.js +28 -0
- package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts +14 -0
- package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts.map +1 -0
- package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.js +23 -0
- package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts +17 -0
- package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts.map +1 -0
- package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.js +25 -0
- package/dist/src/lib/messages/cantonSignTopology/index.d.ts +3 -0
- package/dist/src/lib/messages/cantonSignTopology/index.d.ts.map +1 -0
- package/dist/src/lib/messages/cantonSignTopology/index.js +19 -0
- package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts +13 -0
- package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts.map +1 -0
- package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.js +22 -0
- package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts +14 -0
- package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts.map +1 -0
- package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.js +22 -0
- package/dist/src/lib/messages/cantonSignTransaction/index.d.ts +3 -0
- package/dist/src/lib/messages/cantonSignTransaction/index.d.ts.map +1 -0
- package/dist/src/lib/messages/cantonSignTransaction/index.js +19 -0
- package/dist/src/lib/messages/index.d.ts +5 -0
- package/dist/src/lib/messages/index.d.ts.map +1 -0
- package/dist/src/lib/messages/index.js +21 -0
- package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
- package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/messages/messageBuilderFactory.js +23 -0
- package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +11 -1
- package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -1
- package/dist/src/lib/oneStepPreApprovalBuilder.js +29 -1
- package/dist/src/lib/resourcesInterface.d.ts +1 -1
- package/dist/src/lib/resourcesInterface.d.ts.map +1 -1
- package/dist/src/lib/resourcesInterface.js +1 -1
- package/dist/src/lib/transaction/transaction.d.ts +21 -2
- package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transaction.js +330 -9
- package/dist/src/lib/transactionBuilder.d.ts +3 -3
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +1 -5
- package/dist/src/lib/transactionBuilderFactory.d.ts +22 -1
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +78 -2
- package/dist/src/lib/transferAcceptanceBuilder.d.ts +7 -5
- package/dist/src/lib/transferAcceptanceBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferAcceptanceBuilder.js +20 -6
- package/dist/src/lib/transferAcknowledgeBuilder.d.ts +72 -0
- package/dist/src/lib/transferAcknowledgeBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferAcknowledgeBuilder.js +133 -0
- package/dist/src/lib/transferBuilder.d.ts +87 -3
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +169 -1
- package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts +67 -0
- package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferOfferWithdrawnBuilder.js +130 -0
- package/dist/src/lib/transferRejectionBuilder.d.ts +59 -0
- package/dist/src/lib/transferRejectionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferRejectionBuilder.js +116 -0
- package/dist/src/lib/utils.d.ts +51 -3
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +751 -44
- package/dist/src/lib/walletInitBuilder.d.ts +2 -1
- package/dist/src/lib/walletInitBuilder.d.ts.map +1 -1
- package/dist/src/lib/walletInitBuilder.js +4 -1
- package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +2 -1
- package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -1
- package/dist/src/lib/walletInitialization/walletInitTransaction.js +14 -1
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/test/helper.d.ts +3 -0
- package/dist/test/helper.d.ts.map +1 -0
- package/dist/test/helper.js +9 -0
- package/dist/test/integration/canton.integration.d.ts +2 -0
- package/dist/test/integration/canton.integration.d.ts.map +1 -0
- package/dist/test/integration/canton.integration.js +157 -0
- package/dist/test/integration/canton.token.integration.d.ts +2 -0
- package/dist/test/integration/canton.token.integration.d.ts.map +1 -0
- package/dist/test/integration/canton.token.integration.js +51 -0
- package/dist/test/resources.d.ts +233 -2
- package/dist/test/resources.d.ts.map +1 -1
- package/dist/test/resources.js +238 -7
- package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts +2 -0
- package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.js +360 -0
- package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts +2 -0
- package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.js +133 -0
- package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts +2 -0
- package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.js +121 -0
- package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts +2 -0
- package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.js +407 -0
- package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts +2 -0
- package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.js +340 -0
- package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts +2 -0
- package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.js +104 -0
- package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts +2 -0
- package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.js +74 -0
- package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +25 -7
- package/dist/test/unit/builder/transfer/transferBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transfer/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transfer/transferBuilder.js +84 -0
- package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +65 -15
- package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.js +32 -0
- package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.js +64 -0
- package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +96 -0
- package/dist/test/unit/canton.d.ts +2 -0
- package/dist/test/unit/canton.d.ts.map +1 -0
- package/dist/test/unit/canton.js +705 -0
- package/dist/test/unit/index.d.ts +5 -0
- package/dist/test/unit/index.d.ts.map +1 -1
- package/dist/test/unit/index.js +6 -1
- package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts +2 -0
- package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts.map +1 -0
- package/dist/test/unit/messages/cantonSignTopologyMessage.js +46 -0
- package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts +2 -0
- package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts.map +1 -0
- package/dist/test/unit/messages/cantonSignTransactionMessage.js +48 -0
- package/dist/test/unit/messages/clearSigning.d.ts +2 -0
- package/dist/test/unit/messages/clearSigning.d.ts.map +1 -0
- package/dist/test/unit/messages/clearSigning.js +72 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/messages/messageBuilderFactory.js +52 -0
- package/dist/test/unit/utils.js +376 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Transaction = void 0;
|
|
7
7
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
8
|
const utils_1 = __importDefault(require("../utils"));
|
|
9
|
+
const constant_1 = require("../constant");
|
|
9
10
|
class Transaction extends sdk_core_1.BaseTransaction {
|
|
10
11
|
constructor(coinConfig) {
|
|
11
12
|
super(coinConfig);
|
|
@@ -19,6 +20,18 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
19
20
|
set transactionType(transactionType) {
|
|
20
21
|
this._type = transactionType;
|
|
21
22
|
}
|
|
23
|
+
set acknowledgeData(data) {
|
|
24
|
+
this._acknowledgeData = data;
|
|
25
|
+
}
|
|
26
|
+
set cosignDelegationProposalData(data) {
|
|
27
|
+
this._cosignDelegationProposalData = data;
|
|
28
|
+
}
|
|
29
|
+
set allocationRequestData(data) {
|
|
30
|
+
this._allocationRequestData = data;
|
|
31
|
+
}
|
|
32
|
+
set cantonCommandActAs(parties) {
|
|
33
|
+
this._cantonCommandActAs = parties;
|
|
34
|
+
}
|
|
22
35
|
get id() {
|
|
23
36
|
if (!this._id) {
|
|
24
37
|
throw new sdk_core_1.InvalidTransactionError('transaction is is not set');
|
|
@@ -31,49 +44,357 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
31
44
|
canSign(key) {
|
|
32
45
|
return false;
|
|
33
46
|
}
|
|
47
|
+
set signatures(signature) {
|
|
48
|
+
this._signatures.push(signature);
|
|
49
|
+
}
|
|
50
|
+
set signerFingerprint(fingerprint) {
|
|
51
|
+
this._signerFingerprint = fingerprint;
|
|
52
|
+
}
|
|
34
53
|
toBroadcastFormat() {
|
|
54
|
+
if (this._type === undefined) {
|
|
55
|
+
throw new sdk_core_1.InvalidTransactionError('Transaction type is not set');
|
|
56
|
+
}
|
|
57
|
+
if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
|
|
58
|
+
if (!this._acknowledgeData) {
|
|
59
|
+
throw new sdk_core_1.InvalidTransactionError('AcknowledgeData is not set');
|
|
60
|
+
}
|
|
61
|
+
const minData = {
|
|
62
|
+
txType: sdk_core_1.TransactionType[this._type],
|
|
63
|
+
submissionId: this.id,
|
|
64
|
+
acknowledgeData: this._acknowledgeData,
|
|
65
|
+
};
|
|
66
|
+
return Buffer.from(JSON.stringify(minData)).toString('base64');
|
|
67
|
+
}
|
|
68
|
+
if (this._type === sdk_core_1.TransactionType.CosignDelegationProposal) {
|
|
69
|
+
if (!this._cosignDelegationProposalData) {
|
|
70
|
+
throw new sdk_core_1.InvalidTransactionError('CosignDelegationProposalData is not set');
|
|
71
|
+
}
|
|
72
|
+
const minData = {
|
|
73
|
+
txType: sdk_core_1.TransactionType[this._type],
|
|
74
|
+
submissionId: this.id,
|
|
75
|
+
cosignDelegationProposalData: this._cosignDelegationProposalData,
|
|
76
|
+
};
|
|
77
|
+
return Buffer.from(JSON.stringify(minData)).toString('base64');
|
|
78
|
+
}
|
|
79
|
+
if (this._type === sdk_core_1.TransactionType.AllocationRequest) {
|
|
80
|
+
if (!this._allocationRequestData) {
|
|
81
|
+
throw new sdk_core_1.InvalidTransactionError('AllocationRequestData is not set');
|
|
82
|
+
}
|
|
83
|
+
const minData = {
|
|
84
|
+
txType: sdk_core_1.TransactionType[this._type],
|
|
85
|
+
submissionId: this.id,
|
|
86
|
+
allocationRequestData: this._allocationRequestData,
|
|
87
|
+
};
|
|
88
|
+
return Buffer.from(JSON.stringify(minData)).toString('base64');
|
|
89
|
+
}
|
|
35
90
|
if (!this._prepareCommand) {
|
|
36
91
|
throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
|
|
37
92
|
}
|
|
38
|
-
|
|
93
|
+
const partySignatures = [];
|
|
94
|
+
const data = {
|
|
95
|
+
prepareCommandResponse: this._prepareCommand,
|
|
96
|
+
txType: this._type !== undefined ? sdk_core_1.TransactionType[this._type] : '',
|
|
97
|
+
preparedTransaction: '',
|
|
98
|
+
partySignatures: {
|
|
99
|
+
signatures: partySignatures,
|
|
100
|
+
},
|
|
101
|
+
deduplicationPeriod: {
|
|
102
|
+
Empty: {},
|
|
103
|
+
},
|
|
104
|
+
submissionId: this.id,
|
|
105
|
+
hashingSchemeVersion: constant_1.HASHING_SCHEME_VERSION,
|
|
106
|
+
minLedgerTime: {
|
|
107
|
+
time: {
|
|
108
|
+
Empty: {},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
const signatures = [];
|
|
113
|
+
if (this._signatures.length > 0 && this._signerFingerprint) {
|
|
114
|
+
this.signature.map((signature) => {
|
|
115
|
+
const signatureObj = {
|
|
116
|
+
format: constant_1.SIGNATURE_FORMAT,
|
|
117
|
+
signature: signature,
|
|
118
|
+
signedBy: this._signerFingerprint,
|
|
119
|
+
signingAlgorithmSpec: constant_1.SIGNATURE_ALGORITHM_SPEC,
|
|
120
|
+
};
|
|
121
|
+
signatures.push(signatureObj);
|
|
122
|
+
});
|
|
123
|
+
// CantonCommand: the Canton protocol requires one partySignatures entry per actAs party; all parties share the same TSS key and signature.
|
|
124
|
+
if (this._type === sdk_core_1.TransactionType.CantonCommand) {
|
|
125
|
+
if (!this._cantonCommandActAs?.length) {
|
|
126
|
+
throw new sdk_core_1.InvalidTransactionError('CantonCommand transaction is missing actAs parties required for partySignatures');
|
|
127
|
+
}
|
|
128
|
+
for (const party of this._cantonCommandActAs) {
|
|
129
|
+
data.partySignatures?.signatures.push({ party, signatures });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const signerPartyId = `${this._signerFingerprint.slice(0, 5)}::${this._signerFingerprint}`;
|
|
134
|
+
data.partySignatures?.signatures.push({ party: signerPartyId, signatures });
|
|
135
|
+
}
|
|
136
|
+
data.preparedTransaction = this._prepareCommand.preparedTransaction
|
|
137
|
+
? this._prepareCommand.preparedTransaction
|
|
138
|
+
: '';
|
|
139
|
+
}
|
|
140
|
+
return Buffer.from(JSON.stringify(data)).toString('base64');
|
|
39
141
|
}
|
|
40
142
|
toJson() {
|
|
41
|
-
if (!this._prepareCommand || !this._prepareCommand.preparedTransaction) {
|
|
42
|
-
throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
|
|
43
|
-
}
|
|
44
143
|
const result = {
|
|
45
144
|
id: this.id,
|
|
46
145
|
type: this._type,
|
|
47
146
|
sender: '',
|
|
48
147
|
receiver: '',
|
|
148
|
+
amount: '',
|
|
49
149
|
};
|
|
150
|
+
if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
|
|
151
|
+
if (!this._acknowledgeData) {
|
|
152
|
+
throw new sdk_core_1.InvalidTransactionError('AcknowledgeData is not set');
|
|
153
|
+
}
|
|
154
|
+
result.acknowledgeData = this._acknowledgeData;
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
if (this._type === sdk_core_1.TransactionType.CosignDelegationProposal) {
|
|
158
|
+
if (!this._cosignDelegationProposalData) {
|
|
159
|
+
throw new sdk_core_1.InvalidTransactionError('CosignDelegationProposalData is not set');
|
|
160
|
+
}
|
|
161
|
+
result.cosignDelegationProposalData = this._cosignDelegationProposalData;
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
if (this._type === sdk_core_1.TransactionType.AllocationRequest) {
|
|
165
|
+
if (!this._allocationRequestData) {
|
|
166
|
+
throw new sdk_core_1.InvalidTransactionError('AllocationRequestData is not set');
|
|
167
|
+
}
|
|
168
|
+
result.allocationRequestData = this._allocationRequestData;
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
if (this._type === sdk_core_1.TransactionType.CantonCommand) {
|
|
172
|
+
if (!this._prepareCommand?.preparedTransaction) {
|
|
173
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
|
|
174
|
+
}
|
|
175
|
+
const commandSummary = this.buildCantonCommandSummary();
|
|
176
|
+
if (commandSummary) {
|
|
177
|
+
result.cantonCommand = commandSummary;
|
|
178
|
+
}
|
|
179
|
+
return result;
|
|
180
|
+
}
|
|
181
|
+
if (!this._prepareCommand || !this._prepareCommand.preparedTransaction) {
|
|
182
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
|
|
183
|
+
}
|
|
50
184
|
// TODO: extract other required data (utxo used, request time, execute before etc)
|
|
51
185
|
let parsedInfo;
|
|
52
186
|
try {
|
|
53
|
-
parsedInfo = utils_1.default.parseRawCantonTransactionData(this._prepareCommand.preparedTransaction);
|
|
187
|
+
parsedInfo = utils_1.default.parseRawCantonTransactionData(this._prepareCommand.preparedTransaction, this.type);
|
|
54
188
|
}
|
|
55
189
|
catch (e) {
|
|
56
190
|
throw new sdk_core_1.InvalidTransactionError(`Failed to parse transaction hash: ${e instanceof Error ? e.message : e}`);
|
|
57
191
|
}
|
|
58
192
|
result.sender = parsedInfo.sender;
|
|
59
193
|
result.receiver = parsedInfo.receiver;
|
|
194
|
+
result.amount = parsedInfo.amount;
|
|
195
|
+
if (parsedInfo.memoId) {
|
|
196
|
+
result.memoId = parsedInfo.memoId;
|
|
197
|
+
}
|
|
198
|
+
if (parsedInfo.token) {
|
|
199
|
+
result.token = parsedInfo.token;
|
|
200
|
+
}
|
|
60
201
|
return result;
|
|
61
202
|
}
|
|
62
|
-
|
|
203
|
+
get signablePayload() {
|
|
204
|
+
if (this._type === sdk_core_1.TransactionType.TransferAcknowledge ||
|
|
205
|
+
this._type === sdk_core_1.TransactionType.CosignDelegationProposal ||
|
|
206
|
+
this._type === sdk_core_1.TransactionType.AllocationRequest) {
|
|
207
|
+
return Buffer.from(constant_1.DUMMY_HASH, 'base64');
|
|
208
|
+
}
|
|
63
209
|
if (!this._prepareCommand) {
|
|
64
210
|
throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
|
|
65
211
|
}
|
|
66
|
-
return Buffer.from(this._prepareCommand.preparedTransactionHash);
|
|
212
|
+
return Buffer.from(this._prepareCommand.preparedTransactionHash, 'base64');
|
|
213
|
+
}
|
|
214
|
+
get cantonCommandActAsParties() {
|
|
215
|
+
return this._cantonCommandActAs ?? [];
|
|
67
216
|
}
|
|
68
217
|
fromRawTransaction(rawTx) {
|
|
69
218
|
try {
|
|
70
219
|
const decoded = JSON.parse(Buffer.from(rawTx, 'base64').toString('utf8'));
|
|
71
|
-
this.
|
|
220
|
+
this.id = decoded.submissionId;
|
|
221
|
+
this.transactionType = sdk_core_1.TransactionType[decoded.txType];
|
|
222
|
+
if (this.type === sdk_core_1.TransactionType.TransferAcknowledge) {
|
|
223
|
+
if (decoded.acknowledgeData) {
|
|
224
|
+
this.acknowledgeData = decoded.acknowledgeData;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else if (this.type === sdk_core_1.TransactionType.CosignDelegationProposal) {
|
|
228
|
+
if (decoded.cosignDelegationProposalData) {
|
|
229
|
+
this.cosignDelegationProposalData = decoded.cosignDelegationProposalData;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else if (this.type === sdk_core_1.TransactionType.AllocationRequest) {
|
|
233
|
+
if (decoded.allocationRequestData) {
|
|
234
|
+
this.allocationRequestData = decoded.allocationRequestData;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
if (decoded.prepareCommandResponse) {
|
|
239
|
+
this.prepareCommand = decoded.prepareCommandResponse;
|
|
240
|
+
if (this.type !== sdk_core_1.TransactionType.CantonCommand) {
|
|
241
|
+
this.loadInputsAndOutputs();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (decoded.partySignatures && decoded.partySignatures.signatures.length > 0) {
|
|
245
|
+
this.signerFingerprint = decoded.partySignatures.signatures[0].party.split('::')[1];
|
|
246
|
+
this.signatures = decoded.partySignatures.signatures[0].signatures[0].signature;
|
|
247
|
+
}
|
|
248
|
+
if (this.type === sdk_core_1.TransactionType.CantonCommand && decoded.prepareCommandResponse?.preparedTransaction) {
|
|
249
|
+
this.cantonCommandActAs = utils_1.default.extractSubmitterActAs(decoded.prepareCommandResponse.preparedTransaction);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
72
252
|
}
|
|
73
253
|
catch (e) {
|
|
74
254
|
throw new sdk_core_1.InvalidTransactionError('Unable to parse raw transaction data');
|
|
75
255
|
}
|
|
76
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
* Loads the input & output fields for the transaction
|
|
259
|
+
*
|
|
260
|
+
*/
|
|
261
|
+
loadInputsAndOutputs() {
|
|
262
|
+
const outputs = [];
|
|
263
|
+
const inputs = [];
|
|
264
|
+
const txData = this.toJson();
|
|
265
|
+
const input = {
|
|
266
|
+
address: txData.sender,
|
|
267
|
+
value: txData.amount,
|
|
268
|
+
coin: txData.token ? txData.token : this._coinConfig.name,
|
|
269
|
+
};
|
|
270
|
+
const output = {
|
|
271
|
+
address: txData.receiver,
|
|
272
|
+
value: txData.amount,
|
|
273
|
+
coin: txData.token ? txData.token : this._coinConfig.name,
|
|
274
|
+
};
|
|
275
|
+
inputs.push(input);
|
|
276
|
+
outputs.push(output);
|
|
277
|
+
this._inputs = inputs;
|
|
278
|
+
this._outputs = outputs;
|
|
279
|
+
}
|
|
280
|
+
explainTransaction() {
|
|
281
|
+
const displayOrder = [
|
|
282
|
+
'id',
|
|
283
|
+
'outputs',
|
|
284
|
+
'outputAmount',
|
|
285
|
+
'inputs',
|
|
286
|
+
'inputAmount',
|
|
287
|
+
'changeOutputs',
|
|
288
|
+
'changeAmount',
|
|
289
|
+
'fee',
|
|
290
|
+
'type',
|
|
291
|
+
];
|
|
292
|
+
const inputs = [];
|
|
293
|
+
const outputs = [];
|
|
294
|
+
let inputAmount = '0';
|
|
295
|
+
let outputAmount = '0';
|
|
296
|
+
switch (this.type) {
|
|
297
|
+
case sdk_core_1.TransactionType.CosignDelegationAccept:
|
|
298
|
+
case sdk_core_1.TransactionType.TransferAccept:
|
|
299
|
+
case sdk_core_1.TransactionType.TransferReject: {
|
|
300
|
+
const txData = this.toJson();
|
|
301
|
+
const input = {
|
|
302
|
+
address: txData.sender,
|
|
303
|
+
amount: txData.amount,
|
|
304
|
+
};
|
|
305
|
+
if (txData.token) {
|
|
306
|
+
input.tokenName = txData.token;
|
|
307
|
+
}
|
|
308
|
+
inputs.push(input);
|
|
309
|
+
inputAmount = txData.amount;
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
case sdk_core_1.TransactionType.AllocationAllocate:
|
|
313
|
+
case sdk_core_1.TransactionType.Send: {
|
|
314
|
+
const txData = this.toJson();
|
|
315
|
+
const output = {
|
|
316
|
+
address: txData.receiver,
|
|
317
|
+
amount: txData.amount,
|
|
318
|
+
};
|
|
319
|
+
if (txData.memoId) {
|
|
320
|
+
output.memo = txData.memoId;
|
|
321
|
+
}
|
|
322
|
+
if (txData.token) {
|
|
323
|
+
output.tokenName = txData.token;
|
|
324
|
+
}
|
|
325
|
+
outputs.push(output);
|
|
326
|
+
outputAmount = txData.amount;
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
case sdk_core_1.TransactionType.TransferOfferWithdrawn: {
|
|
330
|
+
const txData = this.toJson();
|
|
331
|
+
const input = {
|
|
332
|
+
address: txData.receiver,
|
|
333
|
+
amount: txData.amount,
|
|
334
|
+
};
|
|
335
|
+
if (txData.token) {
|
|
336
|
+
input.tokenName = txData.token;
|
|
337
|
+
}
|
|
338
|
+
inputs.push(input);
|
|
339
|
+
inputAmount = txData.amount;
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
342
|
+
case sdk_core_1.TransactionType.CantonCommand: {
|
|
343
|
+
const commandSummary = this.buildCantonCommandSummary();
|
|
344
|
+
const explanation = {
|
|
345
|
+
id: this.id,
|
|
346
|
+
displayOrder,
|
|
347
|
+
outputs: outputs,
|
|
348
|
+
outputAmount: outputAmount,
|
|
349
|
+
inputs: inputs,
|
|
350
|
+
inputAmount: inputAmount,
|
|
351
|
+
changeOutputs: [],
|
|
352
|
+
changeAmount: '0',
|
|
353
|
+
fee: { fee: '0' },
|
|
354
|
+
type: this.type,
|
|
355
|
+
};
|
|
356
|
+
if (commandSummary) {
|
|
357
|
+
explanation.cantonCommand = commandSummary;
|
|
358
|
+
}
|
|
359
|
+
return explanation;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
return {
|
|
363
|
+
id: this.id,
|
|
364
|
+
displayOrder,
|
|
365
|
+
outputs: outputs,
|
|
366
|
+
outputAmount: outputAmount,
|
|
367
|
+
inputs: inputs,
|
|
368
|
+
inputAmount: inputAmount,
|
|
369
|
+
changeOutputs: [],
|
|
370
|
+
changeAmount: '0',
|
|
371
|
+
fee: { fee: '0' },
|
|
372
|
+
type: this.type,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
buildCantonCommandSummary() {
|
|
376
|
+
const rawPrepared = this._prepareCommand?.preparedTransaction;
|
|
377
|
+
if (!rawPrepared) {
|
|
378
|
+
return undefined;
|
|
379
|
+
}
|
|
380
|
+
try {
|
|
381
|
+
const info = utils_1.default.extractCantonCommandInfo(rawPrepared);
|
|
382
|
+
const templateIdStr = `${info.templateId.packageId}:${info.templateId.moduleName}:${info.templateId.entityName}`;
|
|
383
|
+
const summary = {
|
|
384
|
+
kind: info.kind,
|
|
385
|
+
templateId: templateIdStr,
|
|
386
|
+
actAs: this._cantonCommandActAs ?? [],
|
|
387
|
+
};
|
|
388
|
+
if (info.choice !== undefined)
|
|
389
|
+
summary.choice = info.choice;
|
|
390
|
+
if (info.contractId !== undefined && info.contractId !== '')
|
|
391
|
+
summary.contractId = info.contractId;
|
|
392
|
+
return summary;
|
|
393
|
+
}
|
|
394
|
+
catch {
|
|
395
|
+
return undefined;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
77
398
|
}
|
|
78
399
|
exports.Transaction = Transaction;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUEwRztBQUcxRyxxREFBNkI7QUFFN0IsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFHOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLFdBQXlDO1FBQzFELElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxlQUFnQztRQUNsRCxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksRUFBRSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFXO1lBQ3JCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLElBQUksRUFBRSxJQUFJLENBQUMsS0FBd0I7WUFDbkMsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7UUFDRixrRkFBa0Y7UUFDbEYsSUFBSSxVQUFpQyxDQUFDO1FBQ3RDLElBQUksQ0FBQztZQUNILFVBQVUsR0FBRyxlQUFLLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHFDQUFxQyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFDRCxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDbEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBaUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN4RyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE5RUQsa0NBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSwgUHJlcGFyZWRUeG5QYXJzZWRJbmZvLCBUeERhdGEgfSBmcm9tICcuLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9wcmVwYXJlQ29tbWFuZDogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZTtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHByZXBhcmVDb21tYW5kKCk6IENhbnRvblByZXBhcmVDb21tYW5kUmVzcG9uc2Uge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlQ29tbWFuZDtcbiAgfVxuXG4gIHNldCBwcmVwYXJlQ29tbWFuZCh0cmFuc2FjdGlvbjogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSkge1xuICAgIHRoaXMuX3ByZXBhcmVDb21tYW5kID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5faWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb24gaXMgaXMgbm90IHNldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gaWQ7XG4gIH1cblxuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlQ29tbWFuZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeSh0aGlzLl9wcmVwYXJlQ29tbWFuZCkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQgfHwgIXRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgdHlwZTogdGhpcy5fdHlwZSBhcyBUcmFuc2FjdGlvblR5cGUsXG4gICAgICBzZW5kZXI6ICcnLFxuICAgICAgcmVjZWl2ZXI6ICcnLFxuICAgIH07XG4gICAgLy8gVE9ETzogZXh0cmFjdCBvdGhlciByZXF1aXJlZCBkYXRhICh1dHhvIHVzZWQsIHJlcXVlc3QgdGltZSwgZXhlY3V0ZSBiZWZvcmUgZXRjKVxuICAgIGxldCBwYXJzZWRJbmZvOiBQcmVwYXJlZFR4blBhcnNlZEluZm87XG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlZEluZm8gPSB1dGlscy5wYXJzZVJhd0NhbnRvblRyYW5zYWN0aW9uRGF0YSh0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEZhaWxlZCB0byBwYXJzZSB0cmFuc2FjdGlvbiBoYXNoOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGV9YCk7XG4gICAgfVxuICAgIHJlc3VsdC5zZW5kZXIgPSBwYXJzZWRJbmZvLnNlbmRlcjtcbiAgICByZXN1bHQucmVjZWl2ZXIgPSBwYXJzZWRJbmZvLnJlY2VpdmVyO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRTaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb25IYXNoKTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUeDogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWQ6IENhbnRvblByZXBhcmVDb21tYW5kUmVzcG9uc2UgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0ZjgnKSk7XG4gICAgICB0aGlzLnByZXBhcmVDb21tYW5kID0gZGVjb2RlZDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSByYXcgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
400
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQU84QjtBQWU5QixxREFBNkI7QUFDN0IsMENBQTZHO0FBRTdHLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBUTlDLFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxXQUF5QztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsZUFBZ0M7UUFDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLElBQXlCO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksNEJBQTRCLENBQUMsSUFBOEI7UUFDN0QsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxxQkFBcUIsQ0FBQyxJQUF1QjtRQUMvQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLE9BQWlCO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksa0NBQXVCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxJQUFJ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QUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakgsTUFBTSxPQUFPLEdBQXlCO2dCQUNwQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsVUFBVSxFQUFFLGFBQWE7Z0JBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CLElBQUksRUFBRTthQUN0QyxDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVM7Z0JBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNsRyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFaRCxrQ0EwWkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEVudHJ5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgSVRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEFsbG9jYXRpb25SZXF1ZXN0LFxuICBDYW50b25Db21tYW5kRXhwbGFpbixcbiAgQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSxcbiAgQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsLFxuICBNdWx0aUhhc2hTaWduYXR1cmUsXG4gIFBhcnR5U2lnbmF0dXJlLFxuICBQcmVwYXJlZFR4blBhcnNlZEluZm8sXG4gIFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSxcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgVHJhbnNmZXJBY2tub3dsZWRnZSxcbiAgVHhEYXRhLFxufSBmcm9tICcuLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRFVNTVlfSEFTSCwgSEFTSElOR19TQ0hFTUVfVkVSU0lPTiwgU0lHTkFUVVJFX0FMR09SSVRITV9TUEVDLCBTSUdOQVRVUkVfRk9STUFUIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9wcmVwYXJlQ29tbWFuZDogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZTtcbiAgcHJpdmF0ZSBfc2lnbmVyRmluZ2VycHJpbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWNrbm93bGVkZ2VEYXRhOiBUcmFuc2ZlckFja25vd2xlZGdlO1xuICBwcml2YXRlIF9jb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhOiBDb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWw7XG4gIHByaXZhdGUgX2FsbG9jYXRpb25SZXF1ZXN0RGF0YTogQWxsb2NhdGlvblJlcXVlc3Q7XG4gIHByaXZhdGUgX2NhbnRvbkNvbW1hbmRBY3RBczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBwcmVwYXJlQ29tbWFuZCgpOiBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZUNvbW1hbmQ7XG4gIH1cblxuICBzZXQgcHJlcGFyZUNvbW1hbmQodHJhbnNhY3Rpb246IENhbnRvblByZXBhcmVDb21tYW5kUmVzcG9uc2UpIHtcbiAgICB0aGlzLl9wcmVwYXJlQ29tbWFuZCA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICBzZXQgYWNrbm93bGVkZ2VEYXRhKGRhdGE6IFRyYW5zZmVyQWNrbm93bGVkZ2UpIHtcbiAgICB0aGlzLl9hY2tub3dsZWRnZURhdGEgPSBkYXRhO1xuICB9XG5cbiAgc2V0IGNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEoZGF0YTogQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsKSB7XG4gICAgdGhpcy5fY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSA9IGRhdGE7XG4gIH1cblxuICBzZXQgYWxsb2NhdGlvblJlcXVlc3REYXRhKGRhdGE6IEFsbG9jYXRpb25SZXF1ZXN0KSB7XG4gICAgdGhpcy5fYWxsb2NhdGlvblJlcXVlc3REYXRhID0gZGF0YTtcbiAgfVxuXG4gIHNldCBjYW50b25Db21tYW5kQWN0QXMocGFydGllczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9jYW50b25Db21tYW5kQWN0QXMgPSBwYXJ0aWVzO1xuICB9XG5cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9pZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd0cmFuc2FjdGlvbiBpcyBpcyBub3Qgc2V0Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHNldCBpZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSBpZDtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2V0IHNpZ25hdHVyZXMoc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIHNldCBzaWduZXJGaW5nZXJwcmludChmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQgPSBmaW5nZXJwcmludDtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIGlzIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICBpZiAoIXRoaXMuX2Fja25vd2xlZGdlRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0Fja25vd2xlZGdlRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW5EYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICAgIHR4VHlwZTogVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdLFxuICAgICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICAgIGFja25vd2xlZGdlRGF0YTogdGhpcy5fYWNrbm93bGVkZ2VEYXRhLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShtaW5EYXRhKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbCkge1xuICAgICAgaWYgKCF0aGlzLl9jb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW5EYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICAgIHR4VHlwZTogVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdLFxuICAgICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICAgIGNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGE6IHRoaXMuX2Nvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG1pbkRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvblJlcXVlc3QpIHtcbiAgICAgIGlmICghdGhpcy5fYWxsb2NhdGlvblJlcXVlc3REYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQWxsb2NhdGlvblJlcXVlc3REYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkRhdGE6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IHtcbiAgICAgICAgdHhUeXBlOiBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0sXG4gICAgICAgIHN1Ym1pc3Npb25JZDogdGhpcy5pZCxcbiAgICAgICAgYWxsb2NhdGlvblJlcXVlc3REYXRhOiB0aGlzLl9hbGxvY2F0aW9uUmVxdWVzdERhdGEsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG1pbkRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCBwYXJ0eVNpZ25hdHVyZXM6IFBhcnR5U2lnbmF0dXJlW10gPSBbXTtcbiAgICBjb25zdCBkYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICBwcmVwYXJlQ29tbWFuZFJlc3BvbnNlOiB0aGlzLl9wcmVwYXJlQ29tbWFuZCxcbiAgICAgIHR4VHlwZTogdGhpcy5fdHlwZSAhPT0gdW5kZWZpbmVkID8gVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdIDogJycsXG4gICAgICBwcmVwYXJlZFRyYW5zYWN0aW9uOiAnJyxcbiAgICAgIHBhcnR5U2lnbmF0dXJlczoge1xuICAgICAgICBzaWduYXR1cmVzOiBwYXJ0eVNpZ25hdHVyZXMsXG4gICAgICB9LFxuICAgICAgZGVkdXBsaWNhdGlvblBlcmlvZDoge1xuICAgICAgICBFbXB0eToge30sXG4gICAgICB9LFxuICAgICAgc3VibWlzc2lvbklkOiB0aGlzLmlkLFxuICAgICAgaGFzaGluZ1NjaGVtZVZlcnNpb246IEhBU0hJTkdfU0NIRU1FX1ZFUlNJT04sXG4gICAgICBtaW5MZWRnZXJUaW1lOiB7XG4gICAgICAgIHRpbWU6IHtcbiAgICAgICAgICBFbXB0eToge30sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlczogTXVsdGlIYXNoU2lnbmF0dXJlW10gPSBbXTtcbiAgICBpZiAodGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwICYmIHRoaXMuX3NpZ25lckZpbmdlcnByaW50KSB7XG4gICAgICB0aGlzLnNpZ25hdHVyZS5tYXAoKHNpZ25hdHVyZSkgPT4ge1xuICAgICAgICBjb25zdCBzaWduYXR1cmVPYmo6IE11bHRpSGFzaFNpZ25hdHVyZSA9IHtcbiAgICAgICAgICBmb3JtYXQ6IFNJR05BVFVSRV9GT1JNQVQsXG4gICAgICAgICAgc2lnbmF0dXJlOiBzaWduYXR1cmUsXG4gICAgICAgICAgc2lnbmVkQnk6IHRoaXMuX3NpZ25lckZpbmdlcnByaW50LFxuICAgICAgICAgIHNpZ25pbmdBbGdvcml0aG1TcGVjOiBTSUdOQVRVUkVfQUxHT1JJVEhNX1NQRUMsXG4gICAgICAgIH07XG4gICAgICAgIHNpZ25hdHVyZXMucHVzaChzaWduYXR1cmVPYmopO1xuICAgICAgfSk7XG4gICAgICAvLyBDYW50b25Db21tYW5kOiB0aGUgQ2FudG9uIHByb3RvY29sIHJlcXVpcmVzIG9uZSBwYXJ0eVNpZ25hdHVyZXMgZW50cnkgcGVyIGFjdEFzIHBhcnR5OyBhbGwgcGFydGllcyBzaGFyZSB0aGUgc2FtZSBUU1Mga2V5IGFuZCBzaWduYXR1cmUuXG4gICAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNhbnRvbkNvbW1hbmQpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jYW50b25Db21tYW5kQWN0QXM/Lmxlbmd0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICAgICdDYW50b25Db21tYW5kIHRyYW5zYWN0aW9uIGlzIG1pc3NpbmcgYWN0QXMgcGFydGllcyByZXF1aXJlZCBmb3IgcGFydHlTaWduYXR1cmVzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBwYXJ0eSBvZiB0aGlzLl9jYW50b25Db21tYW5kQWN0QXMpIHtcbiAgICAgICAgICBkYXRhLnBhcnR5U2lnbmF0dXJlcz8uc2lnbmF0dXJlcy5wdXNoKHsgcGFydHksIHNpZ25hdHVyZXMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNpZ25lclBhcnR5SWQgPSBgJHt0aGlzLl9zaWduZXJGaW5nZXJwcmludC5zbGljZSgwLCA1KX06OiR7dGhpcy5fc2lnbmVyRmluZ2VycHJpbnR9YDtcbiAgICAgICAgZGF0YS5wYXJ0eVNpZ25hdHVyZXM/LnNpZ25hdHVyZXMucHVzaCh7IHBhcnR5OiBzaWduZXJQYXJ0eUlkLCBzaWduYXR1cmVzIH0pO1xuICAgICAgfVxuICAgICAgZGF0YS5wcmVwYXJlZFRyYW5zYWN0aW9uID0gdGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvblxuICAgICAgICA/IHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb25cbiAgICAgICAgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgdHlwZTogdGhpcy5fdHlwZSBhcyBUcmFuc2FjdGlvblR5cGUsXG4gICAgICBzZW5kZXI6ICcnLFxuICAgICAgcmVjZWl2ZXI6ICcnLFxuICAgICAgYW1vdW50OiAnJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJBY2tub3dsZWRnZSkge1xuICAgICAgaWYgKCF0aGlzLl9hY2tub3dsZWRnZURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdBY2tub3dsZWRnZURhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmFja25vd2xlZGdlRGF0YSA9IHRoaXMuX2Fja25vd2xlZGdlRGF0YTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsKSB7XG4gICAgICBpZiAoIXRoaXMuX2Nvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdDb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5jb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhID0gdGhpcy5fY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvblJlcXVlc3QpIHtcbiAgICAgIGlmICghdGhpcy5fYWxsb2NhdGlvblJlcXVlc3REYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQWxsb2NhdGlvblJlcXVlc3REYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5hbGxvY2F0aW9uUmVxdWVzdERhdGEgPSB0aGlzLl9hbGxvY2F0aW9uUmVxdWVzdERhdGE7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNhbnRvbkNvbW1hbmQpIHtcbiAgICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQ/LnByZXBhcmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBjb21tYW5kU3VtbWFyeSA9IHRoaXMuYnVpbGRDYW50b25Db21tYW5kU3VtbWFyeSgpO1xuICAgICAgaWYgKGNvbW1hbmRTdW1tYXJ5KSB7XG4gICAgICAgIHJlc3VsdC5jYW50b25Db21tYW5kID0gY29tbWFuZFN1bW1hcnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kIHx8ICF0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgLy8gVE9ETzogZXh0cmFjdCBvdGhlciByZXF1aXJlZCBkYXRhICh1dHhvIHVzZWQsIHJlcXVlc3QgdGltZSwgZXhlY3V0ZSBiZWZvcmUgZXRjKVxuICAgIGxldCBwYXJzZWRJbmZvOiBQcmVwYXJlZFR4blBhcnNlZEluZm87XG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlZEluZm8gPSB1dGlscy5wYXJzZVJhd0NhbnRvblRyYW5zYWN0aW9uRGF0YSh0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uLCB0aGlzLnR5cGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIHBhcnNlIHRyYW5zYWN0aW9uIGhhc2g6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgICB9XG4gICAgcmVzdWx0LnNlbmRlciA9IHBhcnNlZEluZm8uc2VuZGVyO1xuICAgIHJlc3VsdC5yZWNlaXZlciA9IHBhcnNlZEluZm8ucmVjZWl2ZXI7XG4gICAgcmVzdWx0LmFtb3VudCA9IHBhcnNlZEluZm8uYW1vdW50O1xuICAgIGlmIChwYXJzZWRJbmZvLm1lbW9JZCkge1xuICAgICAgcmVzdWx0Lm1lbW9JZCA9IHBhcnNlZEluZm8ubWVtb0lkO1xuICAgIH1cbiAgICBpZiAocGFyc2VkSW5mby50b2tlbikge1xuICAgICAgcmVzdWx0LnRva2VuID0gcGFyc2VkSW5mby50b2tlbjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJBY2tub3dsZWRnZSB8fFxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbCB8fFxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFsbG9jYXRpb25SZXF1ZXN0XG4gICAgKSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oRFVNTVlfSEFTSCwgJ2Jhc2U2NCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb25IYXNoLCAnYmFzZTY0Jyk7XG4gIH1cblxuICBnZXQgY2FudG9uQ29tbWFuZEFjdEFzUGFydGllcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbnRvbkNvbW1hbmRBY3RBcyA/PyBbXTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUeDogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWQ6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20ocmF3VHgsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpKTtcbiAgICAgIHRoaXMuaWQgPSBkZWNvZGVkLnN1Ym1pc3Npb25JZDtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25UeXBlW2RlY29kZWQudHhUeXBlXTtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICAgIGlmIChkZWNvZGVkLmFja25vd2xlZGdlRGF0YSkge1xuICAgICAgICAgIHRoaXMuYWNrbm93bGVkZ2VEYXRhID0gZGVjb2RlZC5hY2tub3dsZWRnZURhdGE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsKSB7XG4gICAgICAgIGlmIChkZWNvZGVkLmNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEpIHtcbiAgICAgICAgICB0aGlzLmNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEgPSBkZWNvZGVkLmNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvblJlcXVlc3QpIHtcbiAgICAgICAgaWYgKGRlY29kZWQuYWxsb2NhdGlvblJlcXVlc3REYXRhKSB7XG4gICAgICAgICAgdGhpcy5hbGxvY2F0aW9uUmVxdWVzdERhdGEgPSBkZWNvZGVkLmFsbG9jYXRpb25SZXF1ZXN0RGF0YTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGRlY29kZWQucHJlcGFyZUNvbW1hbmRSZXNwb25zZSkge1xuICAgICAgICAgIHRoaXMucHJlcGFyZUNvbW1hbmQgPSBkZWNvZGVkLnByZXBhcmVDb21tYW5kUmVzcG9uc2U7XG4gICAgICAgICAgaWYgKHRoaXMudHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLkNhbnRvbkNvbW1hbmQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlY29kZWQucGFydHlTaWduYXR1cmVzICYmIGRlY29kZWQucGFydHlTaWduYXR1cmVzLnNpZ25hdHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuc2lnbmVyRmluZ2VycHJpbnQgPSBkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcy5zaWduYXR1cmVzWzBdLnBhcnR5LnNwbGl0KCc6OicpWzFdO1xuICAgICAgICAgIHRoaXMuc2lnbmF0dXJlcyA9IGRlY29kZWQucGFydHlTaWduYXR1cmVzLnNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlc1swXS5zaWduYXR1cmU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNhbnRvbkNvbW1hbmQgJiYgZGVjb2RlZC5wcmVwYXJlQ29tbWFuZFJlc3BvbnNlPy5wcmVwYXJlZFRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5jYW50b25Db21tYW5kQWN0QXMgPSB1dGlscy5leHRyYWN0U3VibWl0dGVyQWN0QXMoZGVjb2RlZC5wcmVwYXJlQ29tbWFuZFJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbmFibGUgdG8gcGFyc2UgcmF3IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGlucHV0ICYgb3V0cHV0IGZpZWxkcyBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBjb25zdCBvdXRwdXRzOiBFbnRyeVtdID0gW107XG4gICAgY29uc3QgaW5wdXRzOiBFbnRyeVtdID0gW107XG4gICAgY29uc3QgdHhEYXRhID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBpbnB1dDogRW50cnkgPSB7XG4gICAgICBhZGRyZXNzOiB0eERhdGEuc2VuZGVyLFxuICAgICAgdmFsdWU6IHR4RGF0YS5hbW91bnQsXG4gICAgICBjb2luOiB0eERhdGEudG9rZW4gPyB0eERhdGEudG9rZW4gOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfTtcbiAgICBjb25zdCBvdXRwdXQ6IEVudHJ5ID0ge1xuICAgICAgYWRkcmVzczogdHhEYXRhLnJlY2VpdmVyLFxuICAgICAgdmFsdWU6IHR4RGF0YS5hbW91bnQsXG4gICAgICBjb2luOiB0eERhdGEudG9rZW4gPyB0eERhdGEudG9rZW4gOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfTtcbiAgICBpbnB1dHMucHVzaChpbnB1dCk7XG4gICAgb3V0cHV0cy5wdXNoKG91dHB1dCk7XG4gICAgdGhpcy5faW5wdXRzID0gaW5wdXRzO1xuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICB9XG5cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFtcbiAgICAgICdpZCcsXG4gICAgICAnb3V0cHV0cycsXG4gICAgICAnb3V0cHV0QW1vdW50JyxcbiAgICAgICdpbnB1dHMnLFxuICAgICAgJ2lucHV0QW1vdW50JyxcbiAgICAgICdjaGFuZ2VPdXRwdXRzJyxcbiAgICAgICdjaGFuZ2VBbW91bnQnLFxuICAgICAgJ2ZlZScsXG4gICAgICAndHlwZScsXG4gICAgXTtcbiAgICBjb25zdCBpbnB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG4gICAgY29uc3Qgb3V0cHV0czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcbiAgICBsZXQgaW5wdXRBbW91bnQgPSAnMCc7XG4gICAgbGV0IG91dHB1dEFtb3VudCA9ICcwJztcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQ29zaWduRGVsZWdhdGlvbkFjY2VwdDpcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyQWNjZXB0OlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJSZWplY3Q6IHtcbiAgICAgICAgY29uc3QgdHhEYXRhID0gdGhpcy50b0pzb24oKTtcbiAgICAgICAgY29uc3QgaW5wdXQ6IElUcmFuc2FjdGlvblJlY2lwaWVudCA9IHtcbiAgICAgICAgICBhZGRyZXNzOiB0eERhdGEuc2VuZGVyLFxuICAgICAgICAgIGFtb3VudDogdHhEYXRhLmFtb3VudCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR4RGF0YS50b2tlbikge1xuICAgICAgICAgIGlucHV0LnRva2VuTmFtZSA9IHR4RGF0YS50b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dHMucHVzaChpbnB1dCk7XG4gICAgICAgIGlucHV0QW1vdW50ID0gdHhEYXRhLmFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5BbGxvY2F0aW9uQWxsb2NhdGU6XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOiB7XG4gICAgICAgIGNvbnN0IHR4RGF0YSA9IHRoaXMudG9Kc29uKCk7XG4gICAgICAgIGNvbnN0IG91dHB1dDogSVRyYW5zYWN0aW9uUmVjaXBpZW50ID0ge1xuICAgICAgICAgIGFkZHJlc3M6IHR4RGF0YS5yZWNlaXZlcixcbiAgICAgICAgICBhbW91bnQ6IHR4RGF0YS5hbW91bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0eERhdGEubWVtb0lkKSB7XG4gICAgICAgICAgb3V0cHV0Lm1lbW8gPSB0eERhdGEubWVtb0lkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eERhdGEudG9rZW4pIHtcbiAgICAgICAgICBvdXRwdXQudG9rZW5OYW1lID0gdHhEYXRhLnRva2VuO1xuICAgICAgICB9XG4gICAgICAgIG91dHB1dHMucHVzaChvdXRwdXQpO1xuICAgICAgICBvdXRwdXRBbW91bnQgPSB0eERhdGEuYW1vdW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyT2ZmZXJXaXRoZHJhd246IHtcbiAgICAgICAgY29uc3QgdHhEYXRhID0gdGhpcy50b0pzb24oKTtcbiAgICAgICAgY29uc3QgaW5wdXQ6IElUcmFuc2FjdGlvblJlY2lwaWVudCA9IHtcbiAgICAgICAgICBhZGRyZXNzOiB0eERhdGEucmVjZWl2ZXIsXG4gICAgICAgICAgYW1vdW50OiB0eERhdGEuYW1vdW50LFxuICAgICAgICB9O1xuICAgICAgICBpZiAodHhEYXRhLnRva2VuKSB7XG4gICAgICAgICAgaW5wdXQudG9rZW5OYW1lID0gdHhEYXRhLnRva2VuO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0cy5wdXNoKGlucHV0KTtcbiAgICAgICAgaW5wdXRBbW91bnQgPSB0eERhdGEuYW1vdW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkNhbnRvbkNvbW1hbmQ6IHtcbiAgICAgICAgY29uc3QgY29tbWFuZFN1bW1hcnkgPSB0aGlzLmJ1aWxkQ2FudG9uQ29tbWFuZFN1bW1hcnkoKTtcbiAgICAgICAgY29uc3QgZXhwbGFuYXRpb246IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gPSB7XG4gICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgICAgIG91dHB1dHM6IG91dHB1dHMsXG4gICAgICAgICAgb3V0cHV0QW1vdW50OiBvdXRwdXRBbW91bnQsXG4gICAgICAgICAgaW5wdXRzOiBpbnB1dHMsXG4gICAgICAgICAgaW5wdXRBbW91bnQ6IGlucHV0QW1vdW50LFxuICAgICAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgICAgIGZlZTogeyBmZWU6ICcwJyB9LFxuICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGNvbW1hbmRTdW1tYXJ5KSB7XG4gICAgICAgICAgZXhwbGFuYXRpb24uY2FudG9uQ29tbWFuZCA9IGNvbW1hbmRTdW1tYXJ5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBsYW5hdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgb3V0cHV0czogb3V0cHV0cyxcbiAgICAgIG91dHB1dEFtb3VudDogb3V0cHV0QW1vdW50LFxuICAgICAgaW5wdXRzOiBpbnB1dHMsXG4gICAgICBpbnB1dEFtb3VudDogaW5wdXRBbW91bnQsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogJzAnIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDYW50b25Db21tYW5kU3VtbWFyeSgpOiBDYW50b25Db21tYW5kRXhwbGFpbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcmF3UHJlcGFyZWQgPSB0aGlzLl9wcmVwYXJlQ29tbWFuZD8ucHJlcGFyZWRUcmFuc2FjdGlvbjtcbiAgICBpZiAoIXJhd1ByZXBhcmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5mbyA9IHV0aWxzLmV4dHJhY3RDYW50b25Db21tYW5kSW5mbyhyYXdQcmVwYXJlZCk7XG4gICAgICBjb25zdCB0ZW1wbGF0ZUlkU3RyID0gYCR7aW5mby50ZW1wbGF0ZUlkLnBhY2thZ2VJZH06JHtpbmZvLnRlbXBsYXRlSWQubW9kdWxlTmFtZX06JHtpbmZvLnRlbXBsYXRlSWQuZW50aXR5TmFtZX1gO1xuICAgICAgY29uc3Qgc3VtbWFyeTogQ2FudG9uQ29tbWFuZEV4cGxhaW4gPSB7XG4gICAgICAgIGtpbmQ6IGluZm8ua2luZCxcbiAgICAgICAgdGVtcGxhdGVJZDogdGVtcGxhdGVJZFN0cixcbiAgICAgICAgYWN0QXM6IHRoaXMuX2NhbnRvbkNvbW1hbmRBY3RBcyA/PyBbXSxcbiAgICAgIH07XG4gICAgICBpZiAoaW5mby5jaG9pY2UgIT09IHVuZGVmaW5lZCkgc3VtbWFyeS5jaG9pY2UgPSBpbmZvLmNob2ljZTtcbiAgICAgIGlmIChpbmZvLmNvbnRyYWN0SWQgIT09IHVuZGVmaW5lZCAmJiBpbmZvLmNvbnRyYWN0SWQgIT09ICcnKSBzdW1tYXJ5LmNvbnRyYWN0SWQgPSBpbmZvLmNvbnRyYWN0SWQ7XG4gICAgICByZXR1cm4gc3VtbWFyeTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, TransactionType } from '@bitgo-beta/sdk-core';
|
|
1
|
+
import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, Signature, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import BigNumber from 'bignumber.js';
|
|
3
3
|
import { CantonPrepareCommandResponse } from './iface';
|
|
4
4
|
import { Transaction } from './transaction/transaction';
|
|
5
5
|
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
6
6
|
protected _transaction: Transaction;
|
|
7
|
-
|
|
7
|
+
protected _signatures: Signature[];
|
|
8
8
|
initBuilder(tx: Transaction): void;
|
|
9
9
|
/**
|
|
10
10
|
* The transaction type.
|
|
@@ -17,7 +17,7 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
17
17
|
/** @inheritdoc */
|
|
18
18
|
protected signImplementation(key: BaseKey): Transaction;
|
|
19
19
|
/** @inheritDoc */
|
|
20
|
-
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
20
|
+
abstract addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
21
21
|
/** @inheritdoc */
|
|
22
22
|
protected fromImplementation(rawTransaction: string): Transaction;
|
|
23
23
|
/** @inheritdoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAEtB,SAAS,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAEtB,SAAS,IAAI,aAAa,EAC1B,SAAS,EACT,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAM;IAExC,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIlC;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D,kBAAkB;IAClB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,kBAAkB;IAClB,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,4BAA4B,GAAG,IAAI;IAExE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAIvD,kBAAkB;IAClB,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAExE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAIjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAK3D,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAY/B,kBAAkB;IACZ,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,kBAAkB;IACZ,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAKtC"}
|
|
@@ -23,10 +23,6 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
23
23
|
signImplementation(key) {
|
|
24
24
|
throw new Error('Method not implemented.');
|
|
25
25
|
}
|
|
26
|
-
/** @inheritDoc */
|
|
27
|
-
addSignature(publicKey, signature) {
|
|
28
|
-
this._signatures.push({ publicKey, signature });
|
|
29
|
-
}
|
|
30
26
|
/** @inheritdoc */
|
|
31
27
|
fromImplementation(rawTransaction) {
|
|
32
28
|
throw new Error('Method not implemented.');
|
|
@@ -83,4 +79,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
83
79
|
}
|
|
84
80
|
}
|
|
85
81
|
exports.TransactionBuilder = TransactionBuilder;
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBUThCO0FBRzlCLHVDQUFvQztBQUVwQyxvREFBNEI7QUFFNUIsTUFBc0Isa0JBQW1CLFNBQVEsaUNBQXNCO0lBQXZFOztRQUVZLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztJQXdGMUMsQ0FBQztJQXRGQyxXQUFXLENBQUMsRUFBZTtRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBT0Qsa0JBQWtCO0lBQ2xCLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBS0Qsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUtELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsZUFBZSxDQUFDLE9BQW9CLEVBQUUsYUFBc0I7UUFDMUQsSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsR0FBWTtRQUN0QixJQUFJLE9BQWdCLENBQUM7UUFDckIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixLQUFLLENBQUMsc0JBQXNCLENBQUMsY0FBc0I7UUFDakQsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sZUFBSyxDQUFDLHdDQUF3QyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDM0UsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFdBQXlCO1FBQ2pELElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLGVBQUssQ0FBQyx3Q0FBd0MsQ0FDcEUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDL0MsQ0FBQztRQUNGLElBQUksU0FBUyxLQUFLLFdBQVcsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNyRSxNQUFNLElBQUksZ0NBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFGRCxnREEwRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2lnbmF0dXJlLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IENhbnRvblByZXBhcmVDb21tYW5kUmVzcG9uc2UgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9zaWduYXR1cmVzOiBTaWduYXR1cmVbXSA9IFtdO1xuXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFic3RyYWN0IHNldFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlKTogdm9pZDtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFic3RyYWN0IGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZDtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICBsZXQga2V5UGFpcjogS2V5UGFpcjtcbiAgICB0cnkge1xuICAgICAga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBrZXknKTtcbiAgICB9XG4gICAgaWYgKCFrZXlQYWlyLmdldEtleXMoKS5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQga2V5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24gfHwgIXRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVDb21tYW5kKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBsb2NhbEhhc2ggPSBhd2FpdCB1dGlscy5jb21wdXRlSGFzaEZyb21QcmVwYXJlU3VibWlzc2lvblJlc3BvbnNlKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAobG9jYWxIYXNoICE9PSB0aGlzLl90cmFuc2FjdGlvbi5wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24sIGhhc2ggbm90IG1hdGNoaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdHJhbnNhY3Rpb24/LnByZXBhcmVDb21tYW5kPy5wcmVwYXJlZFRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsSGFzaCA9IGF3YWl0IHV0aWxzLmNvbXB1dGVIYXNoRnJvbVByZXBhcmVTdWJtaXNzaW9uUmVzcG9uc2UoXG4gICAgICB0cmFuc2FjdGlvbi5wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uXG4gICAgKTtcbiAgICBpZiAobG9jYWxIYXNoICE9PSB0cmFuc2FjdGlvbi5wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignaW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { AllocationAllocateBuilder } from './allocationAllocateBuilder';
|
|
4
|
+
import { AllocationAllocateWithdrawnBuilder } from './allocationAllocateWithdrawnBuilder';
|
|
5
|
+
import { AllocationRejectBuilder } from './allocationRejectBuilder';
|
|
6
|
+
import { AllocationRequestBuilder } from './allocationRequestBuilder';
|
|
7
|
+
import { CantonCommandBuilder } from './cantonCommandBuilder';
|
|
8
|
+
import { CosignDelegationAcceptBuilder } from './cosignDelegationAcceptBuilder';
|
|
9
|
+
import { CosignDelegationProposalBuilder } from './cosignDelegationProposalBuilder';
|
|
10
|
+
import { OneStepPreApprovalBuilder } from './oneStepPreApprovalBuilder';
|
|
3
11
|
import { TransferAcceptanceBuilder } from './transferAcceptanceBuilder';
|
|
12
|
+
import { TransferAcknowledgeBuilder } from './transferAcknowledgeBuilder';
|
|
4
13
|
import { TransactionBuilder } from './transactionBuilder';
|
|
5
14
|
import { TransferBuilder } from './transferBuilder';
|
|
15
|
+
import { TransferOfferWithdrawnBuilder } from './transferOfferWithdrawnBuilder';
|
|
16
|
+
import { TransferRejectionBuilder } from './transferRejectionBuilder';
|
|
6
17
|
import { Transaction } from './transaction/transaction';
|
|
7
18
|
import { WalletInitBuilder } from './walletInitBuilder';
|
|
8
19
|
import { WalletInitTransaction } from './walletInitialization/walletInitTransaction';
|
|
@@ -10,8 +21,18 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
10
21
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
11
22
|
/** @inheritdoc */
|
|
12
23
|
from(raw: string): TransactionBuilder | WalletInitBuilder;
|
|
13
|
-
|
|
24
|
+
getAllocationAllocateBuilder(tx?: Transaction): AllocationAllocateBuilder;
|
|
25
|
+
getAllocationAllocateWithdrawnBuilder(tx?: Transaction): AllocationAllocateWithdrawnBuilder;
|
|
26
|
+
getAllocationRejectBuilder(tx?: Transaction): AllocationRejectBuilder;
|
|
27
|
+
getAllocationRequestBuilder(tx?: Transaction): AllocationRequestBuilder;
|
|
28
|
+
getCantonCommandBuilder(tx?: Transaction): CantonCommandBuilder;
|
|
29
|
+
getOneStepPreapprovalBuilder(tx?: Transaction): OneStepPreApprovalBuilder;
|
|
14
30
|
getTransferAcceptanceBuilder(tx?: Transaction): TransferAcceptanceBuilder;
|
|
31
|
+
getTransferAcknowledgeBuilder(tx?: Transaction): TransferAcknowledgeBuilder;
|
|
32
|
+
getCosignDelegationProposalBuilder(tx?: Transaction): CosignDelegationProposalBuilder;
|
|
33
|
+
getCosignDelegationAcceptBuilder(tx?: Transaction): CosignDelegationAcceptBuilder;
|
|
34
|
+
getTransferOfferWithdrawnBuilder(tx?: Transaction): TransferOfferWithdrawnBuilder;
|
|
35
|
+
getTransferRejectBuilder(tx?: Transaction): TransferRejectionBuilder;
|
|
15
36
|
/** @inheritdoc */
|
|
16
37
|
getTransferBuilder(tx?: Transaction): TransferBuilder;
|
|
17
38
|
/** @inheritdoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6BAA6B,EAG9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAErF,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAG7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,iBAAiB;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6BAA6B,EAG9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAErF,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAG7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,iBAAiB;IAuDzD,4BAA4B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,yBAAyB;IAIzE,qCAAqC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,kCAAkC;IAI3F,0BAA0B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,uBAAuB;IAIrE,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIvE,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,oBAAoB;IAI/D,4BAA4B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,yBAAyB;IAIzE,4BAA4B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,yBAAyB;IAIzE,6BAA6B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,0BAA0B;IAI3E,kCAAkC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,+BAA+B;IAIrF,gCAAgC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,6BAA6B;IAIjF,gCAAgC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,6BAA6B;IAIjF,wBAAwB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIpE,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,qBAAqB,GAAG,iBAAiB;IAI7E,OAAO,CAAC,MAAM,CAAC,iBAAiB;CASjC"}
|