@bitgo-beta/sdk-coin-xrp 1.3.3-alpha.222 → 1.3.3-alpha.223
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/CHANGELOG.md +7 -0
- package/dist/src/lib/iface.d.ts +4 -3
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +3 -1
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +8 -4
- package/dist/src/lib/keyPair.d.ts +1 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/tokenTransferBuilder.d.ts +29 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +91 -0
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +19 -8
- package/dist/src/lib/transactionBuilderFactory.d.ts +6 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +15 -1
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +5 -2
- package/dist/src/lib/trustsetBuilder.d.ts +21 -0
- package/dist/src/lib/trustsetBuilder.d.ts.map +1 -0
- package/dist/src/lib/trustsetBuilder.js +72 -0
- package/dist/src/lib/utils.d.ts +11 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +29 -1
- package/dist/src/xrp.d.ts +2 -0
- package/dist/src/xrp.d.ts.map +1 -1
- package/dist/src/xrp.js +93 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.3.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-xrp@3.2.0...@bitgo/sdk-coin-xrp@3.3.0) (2024-11-01)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **sdk-coin-xrp:** add tokenTransferBuilder ([ce6e142](https://github.com/BitGo/BitGoJS/commit/ce6e1427bfd7d1b5f7f63bba5dd374313cfa9307))
|
|
11
|
+
- **sdk-coin-xrp:** add trustsetBuilder ([9c23193](https://github.com/BitGo/BitGoJS/commit/9c231930cfe54221ccc023b2aedfd39bc0c77c3b))
|
|
12
|
+
|
|
6
13
|
# [3.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-xrp@3.1.0...@bitgo/sdk-coin-xrp@3.2.0) (2024-10-22)
|
|
7
14
|
|
|
8
15
|
### Features
|
package/dist/src/lib/iface.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { InitiateRecoveryOptions as BaseInitiateRecoveryOptions, SignTransactionOptions as BaseSignTransactionOptions, TransactionExplanation as BaseTransactionExplanation, VerifyAddressOptions as BaseVerifyAddressOptions, TransactionPrebuild } from '@bitgo-beta/sdk-core';
|
|
2
|
-
import { AccountSet, Payment, Signer, SignerEntry, SignerListSet } from 'xrpl';
|
|
2
|
+
import { AccountSet, Amount, Payment, Signer, SignerEntry, SignerListSet, TrustSet } from 'xrpl';
|
|
3
3
|
export declare enum XrpTransactionType {
|
|
4
4
|
AccountSet = "AccountSet",
|
|
5
5
|
Payment = "Payment",
|
|
6
6
|
SignerListSet = "SignerListSet",
|
|
7
7
|
TrustSet = "TrustSet"
|
|
8
8
|
}
|
|
9
|
-
export type XrpTransaction = Payment | AccountSet | SignerListSet;
|
|
9
|
+
export type XrpTransaction = Payment | AccountSet | SignerListSet | TrustSet;
|
|
10
10
|
export interface Address {
|
|
11
11
|
address: string;
|
|
12
12
|
destinationTag?: number;
|
|
@@ -50,6 +50,7 @@ export interface RecoveryOptions {
|
|
|
50
50
|
bitgoKey?: string;
|
|
51
51
|
walletPassphrase: string;
|
|
52
52
|
krsProvider?: string;
|
|
53
|
+
tokenName?: string;
|
|
53
54
|
}
|
|
54
55
|
export interface HalfSignedTransaction {
|
|
55
56
|
halfSigned: {
|
|
@@ -86,7 +87,7 @@ export interface TxData {
|
|
|
86
87
|
signers?: Signer[];
|
|
87
88
|
destination?: string;
|
|
88
89
|
destinationTag?: number;
|
|
89
|
-
amount?:
|
|
90
|
+
amount?: Amount;
|
|
90
91
|
messageKey?: string;
|
|
91
92
|
setFlag?: number;
|
|
92
93
|
signerQuorum?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,IAAI,2BAA2B,EACtD,sBAAsB,IAAI,0BAA0B,EACpD,sBAAsB,IAAI,0BAA0B,EACpD,oBAAoB,IAAI,wBAAwB,EAChD,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,IAAI,2BAA2B,EACtD,sBAAsB,IAAI,0BAA0B,EACpD,sBAAsB,IAAI,0BAA0B,EACpD,oBAAoB,IAAI,wBAAwB,EAChD,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEjG,oBAAY,kBAAkB;IAC5B,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,UAAU,EAAE,mBAAmB,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB;IACpE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAa,SAAQ,0BAA0B;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAC9B,0BAA0B,GAC1B,gCAAgC,GAChC,mCAAmC,CAAC;AAExC,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAClF,UAAU,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,mCAAoC,SAAQ,0BAA0B;IACrF,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,WAAW,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IAErB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,kBAAkB,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;IAEpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/src/lib/iface.js
CHANGED
|
@@ -8,4 +8,4 @@ var XrpTransactionType;
|
|
|
8
8
|
XrpTransactionType["SignerListSet"] = "SignerListSet";
|
|
9
9
|
XrpTransactionType["TrustSet"] = "TrustSet";
|
|
10
10
|
})(XrpTransactionType = exports.XrpTransactionType || (exports.XrpTransactionType = {}));
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLElBQVksa0JBS1g7QUFMRCxXQUFZLGtCQUFrQjtJQUM1QiwrQ0FBeUIsQ0FBQTtJQUN6Qix5Q0FBbUIsQ0FBQTtJQUNuQixxREFBK0IsQ0FBQTtJQUMvQiwyQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTFcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFLN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbml0aWF0ZVJlY292ZXJ5T3B0aW9ucyBhcyBCYXNlSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMsXG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgYXMgQmFzZVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFZlcmlmeUFkZHJlc3NPcHRpb25zIGFzIEJhc2VWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgVHJhbnNhY3Rpb25QcmVidWlsZCxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQWNjb3VudFNldCwgQW1vdW50LCBQYXltZW50LCBTaWduZXIsIFNpZ25lckVudHJ5LCBTaWduZXJMaXN0U2V0LCBUcnVzdFNldCB9IGZyb20gJ3hycGwnO1xuXG5leHBvcnQgZW51bSBYcnBUcmFuc2FjdGlvblR5cGUge1xuICBBY2NvdW50U2V0ID0gJ0FjY291bnRTZXQnLFxuICBQYXltZW50ID0gJ1BheW1lbnQnLFxuICBTaWduZXJMaXN0U2V0ID0gJ1NpZ25lckxpc3RTZXQnLFxuICBUcnVzdFNldCA9ICdUcnVzdFNldCcsXG59XG5cbmV4cG9ydCB0eXBlIFhycFRyYW5zYWN0aW9uID0gUGF5bWVudCB8IEFjY291bnRTZXQgfCBTaWduZXJMaXN0U2V0IHwgVHJ1c3RTZXQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzcyB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgZGVzdGluYXRpb25UYWc/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVlSW5mbyB7XG4gIGRhdGU6IHN0cmluZztcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGJhc2VSZXNlcnZlOiBzdHJpbmc7XG4gIGJhc2VGZWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVHJhbnNhY3Rpb25PcHRpb25zIGV4dGVuZHMgQmFzZVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMge1xuICB0eFByZWJ1aWxkOiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICBwcnY6IHN0cmluZztcbiAgaXNMYXN0U2lnbmF0dXJlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg/OiBzdHJpbmc7XG4gIGhhbGZTaWduZWQ/OiB7XG4gICAgdHhIZXg6IHN0cmluZzsgLy8gdHhIZXggaXMgcG9vcmx5IG5hbWVkIGhlcmU7IGl0IGlzIGp1c3QgYSB3cmFwcGVkIEpTT04gb2JqZWN0XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5QWRkcmVzc09wdGlvbnMgZXh0ZW5kcyBCYXNlVmVyaWZ5QWRkcmVzc09wdGlvbnMge1xuICByb290QWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJ5SW5mbyBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgdHhIZXg6IHN0cmluZztcbiAgYmFja3VwS2V5Pzogc3RyaW5nO1xuICBjb2luPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJ5VHJhbnNhY3Rpb24ge1xuICB0eEhleDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIGV4dGVuZHMgQmFzZUluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIHtcbiAga3JzUHJvdmlkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlPcHRpb25zIHtcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgcm9vdEFkZHJlc3M6IHN0cmluZztcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBiaXRnb0tleT86IHN0cmluZztcbiAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICBrcnNQcm92aWRlcj86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbGZTaWduZWRUcmFuc2FjdGlvbiB7XG4gIGhhbGZTaWduZWQ6IHtcbiAgICB0eEhleDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBsZW1lbnRHZW5lcmF0ZVdhbGxldE9wdGlvbnMge1xuICByb290UHJpdmF0ZUtleT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9XG4gIHwgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb25cbiAgfCBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvblxuICB8IFNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnRTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBhY2NvdW50U2V0OiB7XG4gICAgbWVzc2FnZUtleT86IHN0cmluZztcbiAgICBzZXRGbGFnOiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHNpZ25lckxpc3RTZXQ6IHtcbiAgICBzaWduZXJRdW9ydW06IG51bWJlcjtcbiAgICBzaWduZXJFbnRyaWVzOiBTaWduZXJFbnRyeVtdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIC8vIG1hbmRhdG9yeSBmaWVsZHNcbiAgZnJvbTogc3RyaW5nO1xuICB0cmFuc2FjdGlvblR5cGU6IFhycFRyYW5zYWN0aW9uVHlwZTtcbiAgaXNNdWx0aVNpZzogYm9vbGVhbjtcbiAgLy8gb3B0aW9uYWwgZmllbGRzXG4gIGlkPzogc3RyaW5nO1xuICBmZWU/OiBzdHJpbmc7XG4gIGZsYWdzOiBudW1iZXI7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xuICBsYXN0TGVkZ2VyU2VxdWVuY2U/OiBudW1iZXI7XG4gIHNpZ25pbmdQdWJLZXk/OiBzdHJpbmc7IC8vIGlmICcnIHRoZW4gaXQgaXMgYSBtdWx0aSBzaWdcbiAgdHhuU2lnbmF0dXJlPzogc3RyaW5nOyAvLyBvbmx5IGZvciBzaW5nbGUgc2lnXG4gIHNpZ25lcnM/OiBTaWduZXJbXTsgLy8gb25seSBmb3IgbXVsdGkgc2lnXG4gIC8vIHRyYW5zZmVyIHhycCBmaWVsZHNcbiAgZGVzdGluYXRpb24/OiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uVGFnPzogbnVtYmVyO1xuICBhbW91bnQ/OiBBbW91bnQ7XG4gIC8vIGFjY291bnQgc2V0IGZpZWxkc1xuICBtZXNzYWdlS2V5Pzogc3RyaW5nO1xuICBzZXRGbGFnPzogbnVtYmVyO1xuICAvLyBzaWduZXIgbGlzdCBzZXQgZmllbGRzXG4gIHNpZ25lclF1b3J1bT86IG51bWJlcjtcbiAgc2lnbmVyRW50cmllcz86IFNpZ25lckVudHJ5W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmVyRGV0YWlscyB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgd2VpZ2h0OiBudW1iZXI7XG59XG4iXX0=
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import Utils from './utils';
|
|
2
|
+
export { AccountSetBuilder } from './accountSetBuilder';
|
|
2
3
|
export * from './constants';
|
|
3
4
|
export * from './iface';
|
|
4
|
-
export { AccountSetBuilder } from './accountSetBuilder';
|
|
5
5
|
export { KeyPair } from './keyPair';
|
|
6
|
+
export { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
6
7
|
export { Transaction } from './transaction';
|
|
7
8
|
export { TransactionBuilder } from './transactionBuilder';
|
|
8
9
|
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
9
10
|
export { TransferBuilder } from './transferBuilder';
|
|
11
|
+
export { TrustSetBuilder } from './trustsetBuilder';
|
|
10
12
|
export { WalletInitializationBuilder } from './walletInitializationBuilder';
|
|
11
13
|
export { Utils };
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
package/dist/src/lib/index.js
CHANGED
|
@@ -17,15 +17,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.Utils = exports.WalletInitializationBuilder = exports.TransferBuilder = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = exports.AccountSetBuilder = void 0;
|
|
20
|
+
exports.Utils = exports.WalletInitializationBuilder = exports.TrustSetBuilder = exports.TransferBuilder = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.TokenTransferBuilder = exports.KeyPair = exports.AccountSetBuilder = void 0;
|
|
21
21
|
const utils_1 = __importDefault(require("./utils"));
|
|
22
22
|
exports.Utils = utils_1.default;
|
|
23
|
-
__exportStar(require("./constants"), exports);
|
|
24
|
-
__exportStar(require("./iface"), exports);
|
|
25
23
|
var accountSetBuilder_1 = require("./accountSetBuilder");
|
|
26
24
|
Object.defineProperty(exports, "AccountSetBuilder", { enumerable: true, get: function () { return accountSetBuilder_1.AccountSetBuilder; } });
|
|
25
|
+
__exportStar(require("./constants"), exports);
|
|
26
|
+
__exportStar(require("./iface"), exports);
|
|
27
27
|
var keyPair_1 = require("./keyPair");
|
|
28
28
|
Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
|
|
29
|
+
var tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
30
|
+
Object.defineProperty(exports, "TokenTransferBuilder", { enumerable: true, get: function () { return tokenTransferBuilder_1.TokenTransferBuilder; } });
|
|
29
31
|
var transaction_1 = require("./transaction");
|
|
30
32
|
Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
|
|
31
33
|
var transactionBuilder_1 = require("./transactionBuilder");
|
|
@@ -34,6 +36,8 @@ var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
|
|
|
34
36
|
Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
|
|
35
37
|
var transferBuilder_1 = require("./transferBuilder");
|
|
36
38
|
Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
|
|
39
|
+
var trustsetBuilder_1 = require("./trustsetBuilder");
|
|
40
|
+
Object.defineProperty(exports, "TrustSetBuilder", { enumerable: true, get: function () { return trustsetBuilder_1.TrustSetBuilder; } });
|
|
37
41
|
var walletInitializationBuilder_1 = require("./walletInitializationBuilder");
|
|
38
42
|
Object.defineProperty(exports, "WalletInitializationBuilder", { enumerable: true, get: function () { return walletInitializationBuilder_1.WalletInitializationBuilder; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBYW5CLGdCQWJGLGVBQUssQ0FhRTtBQVhkLHlEQUF3RDtBQUEvQyxzSEFBQSxpQkFBaUIsT0FBQTtBQUMxQiw4Q0FBNEI7QUFDNUIsMENBQXdCO0FBQ3hCLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIsK0RBQThEO0FBQXJELDRIQUFBLG9CQUFvQixPQUFBO0FBQzdCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQTtBQUNsQyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIsNkVBQTRFO0FBQW5FLDBJQUFBLDJCQUEyQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgeyBBY2NvdW50U2V0QnVpbGRlciB9IGZyb20gJy4vYWNjb3VudFNldEJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBUcnVzdFNldEJ1aWxkZXIgfSBmcm9tICcuL3RydXN0c2V0QnVpbGRlcic7XG5leHBvcnQgeyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBVdGlscyB9O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,WAAW,EAIX,cAAc,EACd,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAQ9B;;GAEG;AACH,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAOtB,kBAAkB;IAClB,UAAU,IAAI,MAAM;IAIpB;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAUpC;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAK7D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { XrpTransactionType } from './iface';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
6
|
+
export declare class TokenTransferBuilder extends TransactionBuilder {
|
|
7
|
+
private _amount;
|
|
8
|
+
private _destination;
|
|
9
|
+
private _destinationTag?;
|
|
10
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
11
|
+
protected get transactionType(): TransactionType;
|
|
12
|
+
protected get xrpTransactionType(): XrpTransactionType.Payment;
|
|
13
|
+
initBuilder(tx: Transaction): void;
|
|
14
|
+
/**
|
|
15
|
+
* Set the receiver address
|
|
16
|
+
* @param {string} address - the address with optional destination tag
|
|
17
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
18
|
+
*/
|
|
19
|
+
to(address: string): TransactionBuilder;
|
|
20
|
+
/**
|
|
21
|
+
* Set the amount to send
|
|
22
|
+
* @param {string} amount - the amount sent
|
|
23
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
24
|
+
*/
|
|
25
|
+
amount(amount: string): TransactionBuilder;
|
|
26
|
+
/** @inheritdoc */
|
|
27
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=tokenTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/tokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,SAAS,KAAK,kBAAkB,IAAI,kBAAkB,CAAC,OAAO,CAE7D;IAED,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAoBlC;;;;OAIG;IACH,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAOvC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAkB1C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAoB5D"}
|
|
@@ -0,0 +1,91 @@
|
|
|
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.TokenTransferBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
+
const iface_1 = require("./iface");
|
|
10
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
11
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
12
|
+
class TokenTransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
13
|
+
constructor(_coinConfig) {
|
|
14
|
+
super(_coinConfig);
|
|
15
|
+
}
|
|
16
|
+
get transactionType() {
|
|
17
|
+
return sdk_core_1.TransactionType.Send;
|
|
18
|
+
}
|
|
19
|
+
get xrpTransactionType() {
|
|
20
|
+
return iface_1.XrpTransactionType.Payment;
|
|
21
|
+
}
|
|
22
|
+
initBuilder(tx) {
|
|
23
|
+
super.initBuilder(tx);
|
|
24
|
+
const { destination, amount, destinationTag } = tx.toJson();
|
|
25
|
+
if (!destination) {
|
|
26
|
+
throw new sdk_core_1.BuildTransactionError('Missing destination');
|
|
27
|
+
}
|
|
28
|
+
if (!amount) {
|
|
29
|
+
throw new sdk_core_1.BuildTransactionError('Missing amount');
|
|
30
|
+
}
|
|
31
|
+
const normalizeAddress = utils_1.default.normalizeAddress({ address: destination, destinationTag });
|
|
32
|
+
this.to(normalizeAddress);
|
|
33
|
+
if (!utils_1.default.isIssuedCurrencyAmount(amount)) {
|
|
34
|
+
throw new sdk_core_1.BuildTransactionError('Invalid Amount');
|
|
35
|
+
}
|
|
36
|
+
const amountBigNum = (0, bignumber_js_1.default)(amount.value).shiftedBy(this._coinConfig.decimalPlaces);
|
|
37
|
+
this.amount(amountBigNum.toFixed());
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Set the receiver address
|
|
41
|
+
* @param {string} address - the address with optional destination tag
|
|
42
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
43
|
+
*/
|
|
44
|
+
to(address) {
|
|
45
|
+
const { address: xrpAddress, destinationTag } = utils_1.default.getAddressDetails(address);
|
|
46
|
+
this._destination = xrpAddress;
|
|
47
|
+
this._destinationTag = destinationTag;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Set the amount to send
|
|
52
|
+
* @param {string} amount - the amount sent
|
|
53
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
54
|
+
*/
|
|
55
|
+
amount(amount) {
|
|
56
|
+
if (typeof amount !== 'string') {
|
|
57
|
+
throw new Error(`amount type ${typeof amount} must be a string`);
|
|
58
|
+
}
|
|
59
|
+
const amountBigNum = (0, bignumber_js_1.default)(amount);
|
|
60
|
+
if (amountBigNum.lt(0)) {
|
|
61
|
+
throw new Error(`amount ${amount} is not valid`);
|
|
62
|
+
}
|
|
63
|
+
const currency = utils_1.default.getXrpCurrencyFromTokenName(this._coinConfig.name);
|
|
64
|
+
// Unlike most coins, XRP Token amounts are represented in decimal notation
|
|
65
|
+
const value = amountBigNum.shiftedBy(-1 * this._coinConfig.decimalPlaces).toFixed();
|
|
66
|
+
this._amount = {
|
|
67
|
+
value: value,
|
|
68
|
+
...currency,
|
|
69
|
+
};
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
/** @inheritdoc */
|
|
73
|
+
async buildImplementation() {
|
|
74
|
+
if (!this._sender) {
|
|
75
|
+
throw new sdk_core_1.BuildTransactionError('Sender must be set before building the transaction');
|
|
76
|
+
}
|
|
77
|
+
const transferFields = {
|
|
78
|
+
TransactionType: this.xrpTransactionType,
|
|
79
|
+
Account: this._sender,
|
|
80
|
+
Destination: this._destination,
|
|
81
|
+
Amount: this._amount,
|
|
82
|
+
};
|
|
83
|
+
if (typeof this._destinationTag === 'number') {
|
|
84
|
+
transferFields.DestinationTag = this._destinationTag;
|
|
85
|
+
}
|
|
86
|
+
this._specificFields = transferFields;
|
|
87
|
+
return await super.buildImplementation();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.TokenTransferBuilder = TokenTransferBuilder;
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUE4RTtBQUU5RSxnRUFBcUM7QUFFckMsbUNBQTZDO0FBRTdDLDZEQUEwRDtBQUMxRCxvREFBNEI7QUFFNUIsTUFBYSxvQkFBcUIsU0FBUSx1Q0FBa0I7SUFLMUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFjLGtCQUFrQjtRQUM5QixPQUFPLDBCQUFrQixDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QixNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksZ0NBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNuRDtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsZUFBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBSyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBQSxzQkFBUyxFQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsRUFBRSxDQUFDLE9BQWU7UUFDaEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsZUFBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsT0FBTyxNQUFNLG1CQUFtQixDQUFDLENBQUM7U0FDbEU7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFBLHNCQUFTLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxNQUFNLGVBQWUsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsTUFBTSxRQUFRLEdBQUcsZUFBSyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsMkVBQTJFO1FBQzNFLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwRixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsS0FBSyxFQUFFLEtBQUs7WUFDWixHQUFHLFFBQVE7U0FDWixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixNQUFNLElBQUksZ0NBQXFCLENBQUMsb0RBQW9ELENBQUMsQ0FBQztTQUN2RjtRQUVELE1BQU0sY0FBYyxHQUFZO1lBQzlCLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQ3hDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3JCLENBQUM7UUFFRixJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUU7WUFDNUMsY0FBYyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3REO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFFdEMsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQTdGRCxvREE2RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEFtb3VudCwgUGF5bWVudCB9IGZyb20gJ3hycGwnO1xuaW1wb3J0IHsgWHJwVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5UcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9hbW91bnQ6IEFtb3VudDtcbiAgcHJpdmF0ZSBfZGVzdGluYXRpb246IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVzdGluYXRpb25UYWc/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHhycFRyYW5zYWN0aW9uVHlwZSgpOiBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudCB7XG4gICAgcmV0dXJuIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50O1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuXG4gICAgY29uc3QgeyBkZXN0aW5hdGlvbiwgYW1vdW50LCBkZXN0aW5hdGlvblRhZyB9ID0gdHgudG9Kc29uKCk7XG4gICAgaWYgKCFkZXN0aW5hdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBkZXN0aW5hdGlvbicpO1xuICAgIH1cbiAgICBpZiAoIWFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBhbW91bnQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVBZGRyZXNzID0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3M6IGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblRhZyB9KTtcbiAgICB0aGlzLnRvKG5vcm1hbGl6ZUFkZHJlc3MpO1xuICAgIGlmICghdXRpbHMuaXNJc3N1ZWRDdXJyZW5jeUFtb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIEFtb3VudCcpO1xuICAgIH1cbiAgICBjb25zdCBhbW91bnRCaWdOdW0gPSBCaWdOdW1iZXIoYW1vdW50LnZhbHVlKS5zaGlmdGVkQnkodGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzKTtcbiAgICB0aGlzLmFtb3VudChhbW91bnRCaWdOdW0udG9GaXhlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2V0IHRoZSByZWNlaXZlciBhZGRyZXNzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gdGhlIGFkZHJlc3Mgd2l0aCBvcHRpb25hbCBkZXN0aW5hdGlvbiB0YWdcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICB0byhhZGRyZXNzOiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IHsgYWRkcmVzczogeHJwQWRkcmVzcywgZGVzdGluYXRpb25UYWcgfSA9IHV0aWxzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgIHRoaXMuX2Rlc3RpbmF0aW9uID0geHJwQWRkcmVzcztcbiAgICB0aGlzLl9kZXN0aW5hdGlvblRhZyA9IGRlc3RpbmF0aW9uVGFnO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqICBTZXQgdGhlIGFtb3VudCB0byBzZW5kXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSB0aGUgYW1vdW50IHNlbnRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGlmICh0eXBlb2YgYW1vdW50ICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBhbW91bnQgdHlwZSAke3R5cGVvZiBhbW91bnR9IG11c3QgYmUgYSBzdHJpbmdgKTtcbiAgICB9XG4gICAgY29uc3QgYW1vdW50QmlnTnVtID0gQmlnTnVtYmVyKGFtb3VudCk7XG4gICAgaWYgKGFtb3VudEJpZ051bS5sdCgwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBhbW91bnQgJHthbW91bnR9IGlzIG5vdCB2YWxpZGApO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW5jeSA9IHV0aWxzLmdldFhycEN1cnJlbmN5RnJvbVRva2VuTmFtZSh0aGlzLl9jb2luQ29uZmlnLm5hbWUpO1xuICAgIC8vIFVubGlrZSBtb3N0IGNvaW5zLCBYUlAgVG9rZW4gYW1vdW50cyBhcmUgcmVwcmVzZW50ZWQgaW4gZGVjaW1hbCBub3RhdGlvblxuICAgIGNvbnN0IHZhbHVlID0gYW1vdW50QmlnTnVtLnNoaWZ0ZWRCeSgtMSAqIHRoaXMuX2NvaW5Db25maWcuZGVjaW1hbFBsYWNlcykudG9GaXhlZCgpO1xuICAgIHRoaXMuX2Ftb3VudCA9IHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIC4uLmN1cnJlbmN5LFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGlmICghdGhpcy5fc2VuZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdTZW5kZXIgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zZmVyRmllbGRzOiBQYXltZW50ID0ge1xuICAgICAgVHJhbnNhY3Rpb25UeXBlOiB0aGlzLnhycFRyYW5zYWN0aW9uVHlwZSxcbiAgICAgIEFjY291bnQ6IHRoaXMuX3NlbmRlcixcbiAgICAgIERlc3RpbmF0aW9uOiB0aGlzLl9kZXN0aW5hdGlvbixcbiAgICAgIEFtb3VudDogdGhpcy5fYW1vdW50LFxuICAgIH07XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuX2Rlc3RpbmF0aW9uVGFnID09PSAnbnVtYmVyJykge1xuICAgICAgdHJhbnNmZXJGaWVsZHMuRGVzdGluYXRpb25UYWcgPSB0aGlzLl9kZXN0aW5hdGlvblRhZztcbiAgICB9XG5cbiAgICB0aGlzLl9zcGVjaWZpY0ZpZWxkcyA9IHRyYW5zZmVyRmllbGRzO1xuXG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,EAGL,sBAAsB,EACtB,MAAM,EACN,cAAc,EAEf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAE9C,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;gBAEnB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,cAAc,CAAC,EAAE,EAAE,cAAc,EAEpC;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAO9B,MAAM,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,EAGL,sBAAsB,EACtB,MAAM,EACN,cAAc,EAEf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAE9C,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;gBAEnB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,cAAc,CAAC,EAAE,EAAE,cAAc,EAEpC;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAO9B,MAAM,IAAI,MAAM;IA2DhB,kBAAkB,IAAI,cAAc;IAOpC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI;IAoDxC,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB,IAAI,sBAAsB;IAa5C,OAAO,CAAC,yBAAyB;IAwBjC,OAAO,CAAC,4BAA4B;IAoBpC,OAAO,CAAC,+BAA+B;IAoBvC,OAAO,CAAC,oBAAoB;IAY5B;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAgDhD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IA0B5B;;;;;QAKI;IACJ,OAAO,CAAC,oBAAoB;IAM5B;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,kBAAkB;CAK3B"}
|
|
@@ -79,11 +79,11 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
79
79
|
case iface_1.XrpTransactionType.Payment:
|
|
80
80
|
txData.destination = this._xrpTransaction.Destination;
|
|
81
81
|
txData.destinationTag = this._xrpTransaction.DestinationTag;
|
|
82
|
-
if (
|
|
82
|
+
if (typeof this._xrpTransaction.Amount === 'string' ||
|
|
83
|
+
utils_1.default.isIssuedCurrencyAmount(this._xrpTransaction.Amount)) {
|
|
83
84
|
txData.amount = this._xrpTransaction.Amount;
|
|
84
85
|
}
|
|
85
86
|
else {
|
|
86
|
-
// Amount is an object
|
|
87
87
|
throw new sdk_core_1.InvalidTransactionError('Invalid amount');
|
|
88
88
|
}
|
|
89
89
|
return txData;
|
|
@@ -95,6 +95,9 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
95
95
|
txData.signerQuorum = this._xrpTransaction.SignerQuorum;
|
|
96
96
|
txData.signerEntries = this._xrpTransaction.SignerEntries;
|
|
97
97
|
return txData;
|
|
98
|
+
case iface_1.XrpTransactionType.TrustSet:
|
|
99
|
+
txData.amount = this._xrpTransaction.LimitAmount;
|
|
100
|
+
return txData;
|
|
98
101
|
default:
|
|
99
102
|
throw new sdk_core_1.InvalidTransactionError('Invalid transaction type');
|
|
100
103
|
}
|
|
@@ -290,7 +293,16 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
290
293
|
this.setTransactionType(sdk_core_1.TransactionType.AccountUpdate);
|
|
291
294
|
break;
|
|
292
295
|
case iface_1.XrpTransactionType.Payment:
|
|
293
|
-
|
|
296
|
+
if (utils_1.default.isIssuedCurrencyAmount(this._xrpTransaction.Amount)) {
|
|
297
|
+
this.setTransactionType(sdk_core_1.TransactionType.SendToken);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
this.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
case iface_1.XrpTransactionType.TrustSet:
|
|
304
|
+
this.setTransactionType(sdk_core_1.TransactionType.TrustLine);
|
|
305
|
+
break;
|
|
294
306
|
}
|
|
295
307
|
this.loadInputsAndOutputs();
|
|
296
308
|
}
|
|
@@ -302,16 +314,15 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
302
314
|
return;
|
|
303
315
|
}
|
|
304
316
|
if (this._xrpTransaction.TransactionType === iface_1.XrpTransactionType.Payment) {
|
|
305
|
-
let value
|
|
317
|
+
let value;
|
|
306
318
|
const { Account, Destination, Amount, DestinationTag } = this._xrpTransaction;
|
|
307
|
-
if (
|
|
319
|
+
if (typeof Amount === 'string') {
|
|
308
320
|
value = Amount;
|
|
309
|
-
coin = this._coinConfig.name;
|
|
310
321
|
}
|
|
311
322
|
else {
|
|
312
323
|
value = Amount.value;
|
|
313
|
-
coin = Amount.currency;
|
|
314
324
|
}
|
|
325
|
+
const coin = this._coinConfig.name;
|
|
315
326
|
this.inputs.push({
|
|
316
327
|
address: Account,
|
|
317
328
|
value,
|
|
@@ -357,4 +368,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
357
368
|
}
|
|
358
369
|
}
|
|
359
370
|
exports.Transaction = Transaction;
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLDJDQUE2QjtBQUU3QixtREFPOEI7QUFFOUIsb0RBQTRCO0FBRTVCLGdFQUFxQztBQUVyQyxtQ0FPaUI7QUFHakI7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQUs5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsRUFBa0I7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLElBQUksQ0FBQyxlQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDeEQ7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFxQztZQUMzRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQzdC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VUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFlO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUFsV0Qsa0NBa1dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIHhycGwgZnJvbSAneHJwbCc7XG5cbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFNpZ25lciB9IGZyb20gJ3hycGwvZGlzdC9ucG0vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQge1xuICBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFR4RGF0YSxcbiAgWHJwVHJhbnNhY3Rpb24sXG4gIFhycFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcblxuLyoqXG4gKiBYUlAgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIC8vIFhSUCBzcGVjaWZpYyBmaWVsZHNcbiAgcHJvdGVjdGVkIF94cnBUcmFuc2FjdGlvbjogWHJwVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfaXNNdWx0aVNpZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHhycFRyYW5zYWN0aW9uKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5feHJwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgeHJwVHJhbnNhY3Rpb24odHg6IFhycFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGE6IFR4RGF0YSA9IHtcbiAgICAgIGZyb206IHRoaXMuX3hycFRyYW5zYWN0aW9uLkFjY291bnQsXG4gICAgICBpc011bHRpU2lnOiB0aGlzLl9pc011bHRpU2lnLFxuICAgICAgdHJhbnNhY3Rpb25UeXBlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgYXMgWHJwVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgZmVlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUsXG4gICAgICBzZXF1ZW5jZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2VxdWVuY2UsXG4gICAgICBsYXN0TGVkZ2VyU2VxdWVuY2U6IHRoaXMuX3hycFRyYW5zYWN0aW9uLkxhc3RMZWRnZXJTZXF1ZW5jZSxcbiAgICAgIGZsYWdzOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GbGFncyBhcyBudW1iZXIsXG4gICAgICBzaWduaW5nUHViS2V5OiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5LFxuICAgICAgc2lnbmVyczogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyxcbiAgICAgIHR4blNpZ25hdHVyZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uVHhuU2lnbmF0dXJlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSA9PT0gJycgJiYgIV8uaXNFbXB0eSh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzKSkge1xuICAgICAgdHhEYXRhLmlzTXVsdGlTaWcgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB1dGlscy5pc1ZhbGlkUHVibGljS2V5KHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkpKSB7XG4gICAgICB0eERhdGEuaXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICB0eERhdGEuZGVzdGluYXRpb24gPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5EZXN0aW5hdGlvbjtcbiAgICAgICAgdHhEYXRhLmRlc3RpbmF0aW9uVGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uRGVzdGluYXRpb25UYWc7XG4gICAgICAgIGlmIChfLmlzU3RyaW5nKHRoaXMuX3hycFRyYW5zYWN0aW9uLkFtb3VudCkpIHtcbiAgICAgICAgICB0eERhdGEuYW1vdW50ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uQW1vdW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFtb3VudCBpcyBhbiBvYmplY3RcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHR4RGF0YTtcblxuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuQWNjb3VudFNldDpcbiAgICAgICAgdHhEYXRhLnNldEZsYWcgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5TZXRGbGFnO1xuICAgICAgICB0eERhdGEubWVzc2FnZUtleSA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLk1lc3NhZ2VLZXk7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlNpZ25lckxpc3RTZXQ6XG4gICAgICAgIHR4RGF0YS5zaWduZXJRdW9ydW0gPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJRdW9ydW07XG4gICAgICAgIHR4RGF0YS5zaWduZXJFbnRyaWVzID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVyRW50cmllcztcbiAgICAgICAgcmV0dXJuIHR4RGF0YTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBnZXRTaWduYWJsZVBheWxvYWQoKTogWHJwVHJhbnNhY3Rpb24ge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIF8ub21pdCh0aGlzLl94cnBUcmFuc2FjdGlvbiwgWydUeG5TaWduYXR1cmUnLCAnU2lnbmVycycsICdTaWduaW5nUHViS2V5J10pIGFzIFhycFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2lnbihrZXlQYWlyOiBLZXlQYWlyIHwgS2V5UGFpcltdKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uLkZlZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIGZlZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uLlNlcXVlbmNlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3Npbmcgc2VxdWVuY2UnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbi5GbGFncykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIGZsYWdzJyk7XG4gICAgfVxuICAgIGlmIChfLmlzRW1wdHkoa2V5UGFpcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlQYWlycyA9IGtleVBhaXIgaW5zdGFuY2VvZiBBcnJheSA/IGtleVBhaXIgOiBba2V5UGFpcl07XG4gICAgZm9yIChjb25zdCBrcCBvZiBrZXlQYWlycykge1xuICAgICAgY29uc3QgeyBwdWIsIHBydiB9ID0ga3AuZ2V0S2V5cygpO1xuICAgICAgaWYgKCFwcnYpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5faXNNdWx0aVNpZyA9PT0gZmFsc2UgJiYgdGhpcy5feHJwVHJhbnNhY3Rpb24uVHhuU2lnbmF0dXJlKSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ1RyYW5zYWN0aW9uIGhhcyBhbHJlYWR5IGJlZW4gc2lnbmVkJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzaWduYWJsZVBheWxvYWQgPSB0aGlzLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuXG4gICAgICBjb25zdCB4cnBXYWxsZXQgPSBuZXcgeHJwbC5XYWxsZXQocHViLCBwcnYpO1xuICAgICAgY29uc3Qgc2lnbmVkVHggPSB4cnBXYWxsZXQuc2lnbihzaWduYWJsZVBheWxvYWQsIHRoaXMuX2lzTXVsdGlTaWcpO1xuICAgICAgY29uc3QgeHJwU2lnbmVkVHggPSB4cnBsLmRlY29kZShzaWduZWRUeC50eF9ibG9iKTtcbiAgICAgIHhycGwudmFsaWRhdGUoeHJwU2lnbmVkVHgpO1xuXG4gICAgICBpZiAodGhpcy5faXNNdWx0aVNpZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgeHJwV2FsbGV0LnZlcmlmeVRyYW5zYWN0aW9uKHNpZ25lZFR4LnR4X2Jsb2IpO1xuICAgICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHhycFNpZ25lZFR4IGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgICAgIHRoaXMuX2lkID0gc2lnbmVkVHguaGFzaDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2lzTXVsdGlTaWcgPT09IHRydWUpIHtcbiAgICAgICAgaWYgKCF4cnBTaWduZWRUeC5TaWduZXJzIHx8ICFfLmlzQXJyYXkoeHJwU2lnbmVkVHguU2lnbmVycykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIG9yIGludmFsaWQgc2lnbmVycycpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZFNpZ25lcnMgPSB0aGlzLmNvbmNhdEFuZFNvcnRTaWduZXJzKHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMgfHwgW10sIHhycFNpZ25lZFR4LlNpZ25lcnMpO1xuICAgICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHhycFNpZ25lZFR4IGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMgPSBzb3J0ZWRTaWduZXJzO1xuICAgICAgICB0aGlzLl9pZCA9IHRoaXMuY2FsY3VsYXRlSWRGcm9tUmF3VHgoeHJwbC5lbmNvZGUodGhpcy5feHJwVHJhbnNhY3Rpb24pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB4cnBsLmVuY29kZSh0aGlzLl94cnBUcmFuc2FjdGlvbik7XG4gIH1cblxuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgc3dpdGNoICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlBheW1lbnQ6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5QYXltZW50VHJhbnNhY3Rpb24oKTtcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnRTZXQ6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5BY2NvdW50U2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlNpZ25lckxpc3RTZXQ6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5TaWduZXJMaXN0U2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXhwbGFpblBheW1lbnRUcmFuc2FjdGlvbigpOiBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgdHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLlBheW1lbnQ7XG4gICAgY29uc3QgYWRkcmVzcyA9IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzOiB0eC5EZXN0aW5hdGlvbiwgZGVzdGluYXRpb25UYWc6IHR4LkRlc3RpbmF0aW9uVGFnIH0pO1xuICAgIGNvbnN0IGFtb3VudCA9IF8uaXNTdHJpbmcodHguQW1vdW50KSA/IHR4LkFtb3VudCA6IDA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZSddLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiBhbW91bnQsXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgIGFtb3VudCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiB0eC5GZWUgYXMgc3RyaW5nLFxuICAgICAgICBmZWVSYXRlOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5BY2NvdW50U2V0VHJhbnNhY3Rpb24oKTogQWNjb3VudFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5BY2NvdW50U2V0O1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXI6IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJywgJ2FjY291bnRTZXQnXSxcbiAgICAgIGlkOiB0aGlzLl9pZCBhcyBzdHJpbmcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dEFtb3VudDogMCxcbiAgICAgIGNoYW5nZUFtb3VudDogMCxcbiAgICAgIG91dHB1dHM6IFtdLFxuICAgICAgZmVlOiB7XG4gICAgICAgIGZlZTogdHguRmVlIGFzIHN0cmluZyxcbiAgICAgICAgZmVlUmF0ZTogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGFjY291bnRTZXQ6IHtcbiAgICAgICAgbWVzc2FnZUtleTogdHguTWVzc2FnZUtleSxcbiAgICAgICAgc2V0RmxhZzogdHguU2V0RmxhZyBhcyB4cnBsLkFjY291bnRTZXRBc2ZGbGFncyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwbGFpblNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbigpOiBTaWduZXJMaXN0U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgdHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLlNpZ25lckxpc3RTZXQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXlPcmRlcjogWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAnc2lnbmVyTGlzdFNldCddLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiAwLFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiB0eC5GZWUgYXMgc3RyaW5nLFxuICAgICAgICBmZWVSYXRlOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgc2lnbmVyTGlzdFNldDoge1xuICAgICAgICBzaWduZXJRdW9ydW06IHR4LlNpZ25lclF1b3J1bSxcbiAgICAgICAgc2lnbmVyRW50cmllczogdHguU2lnbmVyRW50cmllcyBhcyB4cnBsLlNpZ25lckVudHJ5W10sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUlkRnJvbVJhd1R4KHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBpZDogc3RyaW5nO1xuICAgIC8vIGhhc2hlcyBpZHMgYXJlIGRpZmZlcmVudCBmb3Igc2lnbmVkIGFuZCB1bnNpZ25lZCB0eFxuICAgIC8vIGZpcnN0IHdlIHRyeSB0byBnZXQgdGhlIGhhc2ggaWQgYXMgaWYgaXQgaXMgc2lnbmVkLCB3aWxsIHRocm93IGlmIGl0cyBub3RcbiAgICB0cnkge1xuICAgICAgaWQgPSB4cnBsLmhhc2hlcy5oYXNoU2lnbmVkVHgocmF3VHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlkID0geHJwbC5oYXNoZXMuaGFzaFR4KHJhd1RyYW5zYWN0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgc2V0TXVsdGlTaWdWYWx1ZShpc011bHRpU2lnOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5faXNNdWx0aVNpZyA9IGlzTXVsdGlTaWc7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCB0eEhleCA9IHJhd1RyYW5zYWN0aW9uO1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEhleChyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHR4SGV4ID0geHJwbC5lbmNvZGUoSlNPTi5wYXJzZShyYXdUcmFuc2FjdGlvbikpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdXRpbHMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbih0eEhleCk7XG5cbiAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHhycGwuZGVjb2RlKHR4SGV4KSBhcyB1bmtub3duIGFzIFhycFRyYW5zYWN0aW9uO1xuICAgIGlmICghWHJwVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZSwgZ290OiAnICsgdGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkgJiYgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAhPT0gJycpIHtcbiAgICAgIHRoaXMuX2lzTXVsdGlTaWcgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSA9PT0gJycgJiZcbiAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMgJiZcbiAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgdGhpcy5faXNNdWx0aVNpZyA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuX2lkID0gdGhpcy5jYWxjdWxhdGVJZEZyb21SYXdUeCh0eEhleCk7XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuU2lnbmVyTGlzdFNldDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50U2V0OlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIH1cbiAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgPT09IFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50KSB7XG4gICAgICBsZXQgdmFsdWU6IHN0cmluZywgY29pbjogc3RyaW5nO1xuICAgICAgY29uc3QgeyBBY2NvdW50LCBEZXN0aW5hdGlvbiwgQW1vdW50LCBEZXN0aW5hdGlvblRhZyB9ID0gdGhpcy5feHJwVHJhbnNhY3Rpb247XG4gICAgICBpZiAoXy5pc1N0cmluZyhBbW91bnQpKSB7XG4gICAgICAgIHZhbHVlID0gQW1vdW50O1xuICAgICAgICBjb2luID0gdGhpcy5fY29pbkNvbmZpZy5uYW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSBBbW91bnQudmFsdWU7XG4gICAgICAgIGNvaW4gPSBBbW91bnQuY3VycmVuY3k7XG4gICAgICB9XG4gICAgICB0aGlzLmlucHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogQWNjb3VudCxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNvaW4sXG4gICAgICB9KTtcbiAgICAgIHRoaXMub3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMubm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3M6IERlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblRhZzogRGVzdGluYXRpb25UYWcgfSksXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBjb2luLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwcyBhbmQgc29ydHMgdGhlIHNpZ25lcnMgYnkgYWNjb3VudC5cbiAgICogQHBhcmFtIHtTaWduZXJbXX1zaWduZXJzMSAtIFRoZSBmaXJzdCBzZXQgb2Ygc2lnbmVycy5cbiAgICogQHBhcmFtIHtTaWduZXJbXX1zaWduZXJzMiAtIFRoZSBzZWNvbmQgc2V0IG9mIHNpZ25lcnMuXG4gICAqIEByZXR1cm5zIFRoZSBncm91cGVkIGFuZCBzb3J0ZWQgc2lnbmVycy5cbiAgICoqL1xuICBwcml2YXRlIGNvbmNhdEFuZFNvcnRTaWduZXJzKHNpZ25lcnMxOiBTaWduZXJbXSwgc2lnbmVyczI6IFNpZ25lcltdKTogU2lnbmVyW10ge1xuICAgIHJldHVybiBzaWduZXJzMVxuICAgICAgLmNvbmNhdChzaWduZXJzMilcbiAgICAgIC5zb3J0KChzaWduZXIxLCBzaWduZXIyKSA9PiB0aGlzLmNvbXBhcmVTaWduZXJzQnlBY2NvdW50KHNpZ25lcjEuU2lnbmVyLkFjY291bnQsIHNpZ25lcjIuU2lnbmVyLkFjY291bnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwcmVzZW50ZWQgaW4gYmluYXJ5IGZvcm0sIHRoZSBTaWduZXJzIGFycmF5IG11c3QgYmUgc29ydGVkIGJhc2VkIG9uXG4gICAqIHRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBzaWduZXIgYWRkcmVzc2VzLCB3aXRoIHRoZSBsb3dlc3QgdmFsdWUgZmlyc3QuXG4gICAqIChJZiBzdWJtaXR0ZWQgYXMgSlNPTiwgdGhlIHN1Ym1pdF9tdWx0aXNpZ25lZCBtZXRob2QgaGFuZGxlcyB0aGlzIGF1dG9tYXRpY2FsbHkuKVxuICAgKiBodHRwczovL3hycGwub3JnL211bHRpLXNpZ25pbmcuaHRtbC5cbiAgICpcbiAgICogQHBhcmFtIGxlZnQgLSBBIFNpZ25lciB0byBjb21wYXJlIHdpdGguXG4gICAqIEBwYXJhbSByaWdodCAtIEEgc2Vjb25kIFNpZ25lciB0byBjb21wYXJlIHdpdGguXG4gICAqIEByZXR1cm5zIDEgaWYgbGVmdCBcXD4gcmlnaHQsIDAgaWYgbGVmdCA9IHJpZ2h0LCAtMSBpZiBsZWZ0IFxcPCByaWdodCwgYW5kIG51bGwgaWYgbGVmdCBvciByaWdodCBhcmUgTmFOLlxuICAgKi9cbiAgcHJpdmF0ZSBjb21wYXJlU2lnbmVyc0J5QWNjb3VudChhZGRyZXNzMTogc3RyaW5nLCBhZGRyZXNzMjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBhZGRyZXNzQk4xID0gdGhpcy5hZGRyZXNzVG9CaWdOdW1iZXIoYWRkcmVzczEpO1xuICAgIGNvbnN0IGFkZHJlc3NCTjIgPSB0aGlzLmFkZHJlc3NUb0JpZ051bWJlcihhZGRyZXNzMik7XG4gICAgcmV0dXJuIGFkZHJlc3NCTjEuY29tcGFyZWRUbyhhZGRyZXNzQk4yKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkcmVzc1RvQmlnTnVtYmVyKGFkZHJlc3M6IHN0cmluZyk6IEJpZ051bWJlciB7XG4gICAgY29uc3QgaGV4ID0gQnVmZmVyLmZyb20oeHJwbC5kZWNvZGVBY2NvdW50SUQoYWRkcmVzcykpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBudW1iZXJPZkJpdHNJbkhleCA9IDE2O1xuICAgIHJldHVybiBuZXcgQmlnTnVtYmVyKGhleCwgbnVtYmVyT2ZCaXRzSW5IZXgpO1xuICB9XG59XG4iXX0=
|
|
371
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLDJDQUE2QjtBQUU3QixtREFPOEI7QUFFOUIsb0RBQTRCO0FBRTVCLGdFQUFxQztBQUVyQyxtQ0FPaUI7QUFHakI7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQUs5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsRUFBa0I7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLElBQUksQ0FBQyxlQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDeEQ7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFxQztZQUMzRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQzdC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QUNMLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7OztRQUtJO0lBQ0ksb0JBQW9CLENBQUMsUUFBa0IsRUFBRSxRQUFrQjtRQUNqRSxPQUFPLFFBQVE7YUFDWixNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ2hCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNLLHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE9BQWU7UUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQS9XRCxrQ0ErV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgeHJwbCBmcm9tICd4cnBsJztcblxuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgU2lnbmVyIH0gZnJvbSAneHJwbCc7XG5pbXBvcnQge1xuICBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFR4RGF0YSxcbiAgWHJwVHJhbnNhY3Rpb24sXG4gIFhycFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcblxuLyoqXG4gKiBYUlAgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIC8vIFhSUCBzcGVjaWZpYyBmaWVsZHNcbiAgcHJvdGVjdGVkIF94cnBUcmFuc2FjdGlvbjogWHJwVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfaXNNdWx0aVNpZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHhycFRyYW5zYWN0aW9uKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5feHJwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgeHJwVHJhbnNhY3Rpb24odHg6IFhycFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGE6IFR4RGF0YSA9IHtcbiAgICAgIGZyb206IHRoaXMuX3hycFRyYW5zYWN0aW9uLkFjY291bnQsXG4gICAgICBpc011bHRpU2lnOiB0aGlzLl9pc011bHRpU2lnLFxuICAgICAgdHJhbnNhY3Rpb25UeXBlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgYXMgWHJwVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgZmVlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUsXG4gICAgICBzZXF1ZW5jZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2VxdWVuY2UsXG4gICAgICBsYXN0TGVkZ2VyU2VxdWVuY2U6IHRoaXMuX3hycFRyYW5zYWN0aW9uLkxhc3RMZWRnZXJTZXF1ZW5jZSxcbiAgICAgIGZsYWdzOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GbGFncyBhcyBudW1iZXIsXG4gICAgICBzaWduaW5nUHViS2V5OiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5LFxuICAgICAgc2lnbmVyczogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyxcbiAgICAgIHR4blNpZ25hdHVyZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uVHhuU2lnbmF0dXJlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSA9PT0gJycgJiYgIV8uaXNFbXB0eSh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzKSkge1xuICAgICAgdHhEYXRhLmlzTXVsdGlTaWcgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB1dGlscy5pc1ZhbGlkUHVibGljS2V5KHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkpKSB7XG4gICAgICB0eERhdGEuaXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICB0eERhdGEuZGVzdGluYXRpb24gPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5EZXN0aW5hdGlvbjtcbiAgICAgICAgdHhEYXRhLmRlc3RpbmF0aW9uVGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uRGVzdGluYXRpb25UYWc7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlb2YgdGhpcy5feHJwVHJhbnNhY3Rpb24uQW1vdW50ID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgIHV0aWxzLmlzSXNzdWVkQ3VycmVuY3lBbW91bnQodGhpcy5feHJwVHJhbnNhY3Rpb24uQW1vdW50KVxuICAgICAgICApIHtcbiAgICAgICAgICB0eERhdGEuYW1vdW50ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uQW1vdW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50U2V0OlxuICAgICAgICB0eERhdGEuc2V0RmxhZyA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNldEZsYWc7XG4gICAgICAgIHR4RGF0YS5tZXNzYWdlS2V5ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uTWVzc2FnZUtleTtcbiAgICAgICAgcmV0dXJuIHR4RGF0YTtcblxuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuU2lnbmVyTGlzdFNldDpcbiAgICAgICAgdHhEYXRhLnNpZ25lclF1b3J1bSA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lclF1b3J1bTtcbiAgICAgICAgdHhEYXRhLnNpZ25lckVudHJpZXMgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJFbnRyaWVzO1xuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5UcnVzdFNldDpcbiAgICAgICAgdHhEYXRhLmFtb3VudCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLkxpbWl0QW1vdW50O1xuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNpZ25hYmxlUGF5bG9hZCgpOiBYcnBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gXy5vbWl0KHRoaXMuX3hycFRyYW5zYWN0aW9uLCBbJ1R4blNpZ25hdHVyZScsICdTaWduZXJzJywgJ1NpZ25pbmdQdWJLZXknXSkgYXMgWHJwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzaWduKGtleVBhaXI6IEtleVBhaXIgfCBLZXlQYWlyW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24uRmVlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgZmVlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24uU2VxdWVuY2UpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBzZXF1ZW5jZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uLkZsYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgZmxhZ3MnKTtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eShrZXlQYWlyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleVBhaXJzID0ga2V5UGFpciBpbnN0YW5jZW9mIEFycmF5ID8ga2V5UGFpciA6IFtrZXlQYWlyXTtcbiAgICBmb3IgKGNvbnN0IGtwIG9mIGtleVBhaXJzKSB7XG4gICAgICBjb25zdCB7IHB1YiwgcHJ2IH0gPSBrcC5nZXRLZXlzKCk7XG4gICAgICBpZiAoIXBydikge1xuICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9pc011bHRpU2lnID09PSBmYWxzZSAmJiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UeG5TaWduYXR1cmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignVHJhbnNhY3Rpb24gaGFzIGFscmVhZHkgYmVlbiBzaWduZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IHRoaXMuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG5cbiAgICAgIGNvbnN0IHhycFdhbGxldCA9IG5ldyB4cnBsLldhbGxldChwdWIsIHBydik7XG4gICAgICBjb25zdCBzaWduZWRUeCA9IHhycFdhbGxldC5zaWduKHNpZ25hYmxlUGF5bG9hZCwgdGhpcy5faXNNdWx0aVNpZyk7XG4gICAgICBjb25zdCB4cnBTaWduZWRUeCA9IHhycGwuZGVjb2RlKHNpZ25lZFR4LnR4X2Jsb2IpO1xuICAgICAgeHJwbC52YWxpZGF0ZSh4cnBTaWduZWRUeCk7XG5cbiAgICAgIGlmICh0aGlzLl9pc011bHRpU2lnID09PSBmYWxzZSkge1xuICAgICAgICB4cnBXYWxsZXQudmVyaWZ5VHJhbnNhY3Rpb24oc2lnbmVkVHgudHhfYmxvYik7XG4gICAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uID0geHJwU2lnbmVkVHggYXMgdW5rbm93biBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgICAgICAgdGhpcy5faWQgPSBzaWduZWRUeC5oYXNoO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5faXNNdWx0aVNpZyA9PT0gdHJ1ZSkge1xuICAgICAgICBpZiAoIXhycFNpZ25lZFR4LlNpZ25lcnMgfHwgIV8uaXNBcnJheSh4cnBTaWduZWRUeC5TaWduZXJzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3Npbmcgb3IgaW52YWxpZCBzaWduZXJzJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydGVkU2lnbmVycyA9IHRoaXMuY29uY2F0QW5kU29ydFNpZ25lcnModGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyB8fCBbXSwgeHJwU2lnbmVkVHguU2lnbmVycyk7XG4gICAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uID0geHJwU2lnbmVkVHggYXMgdW5rbm93biBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyA9IHNvcnRlZFNpZ25lcnM7XG4gICAgICAgIHRoaXMuX2lkID0gdGhpcy5jYWxjdWxhdGVJZEZyb21SYXdUeCh4cnBsLmVuY29kZSh0aGlzLl94cnBUcmFuc2FjdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHhycGwuZW5jb2RlKHRoaXMuX3hycFRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblBheW1lbnRUcmFuc2FjdGlvbigpO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuQWNjb3VudFNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpbkFjY291bnRTZXRUcmFuc2FjdGlvbigpO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuU2lnbmVyTGlzdFNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbigpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHBsYWluUGF5bWVudFRyYW5zYWN0aW9uKCk6IEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuUGF5bWVudDtcbiAgICBjb25zdCBhZGRyZXNzID0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3M6IHR4LkRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblRhZzogdHguRGVzdGluYXRpb25UYWcgfSk7XG4gICAgY29uc3QgYW1vdW50ID0gXy5pc1N0cmluZyh0eC5BbW91bnQpID8gdHguQW1vdW50IDogMDtcblxuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXI6IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJ10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6IGFtb3VudCxcbiAgICAgIGNoYW5nZUFtb3VudDogMCxcbiAgICAgIG91dHB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3MsXG4gICAgICAgICAgYW1vdW50LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwbGFpbkFjY291bnRTZXRUcmFuc2FjdGlvbigpOiBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgdHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLkFjY291bnRTZXQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXlPcmRlcjogWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAnYWNjb3VudFNldCddLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiAwLFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiB0eC5GZWUgYXMgc3RyaW5nLFxuICAgICAgICBmZWVSYXRlOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgYWNjb3VudFNldDoge1xuICAgICAgICBtZXNzYWdlS2V5OiB0eC5NZXNzYWdlS2V5LFxuICAgICAgICBzZXRGbGFnOiB0eC5TZXRGbGFnIGFzIHhycGwuQWNjb3VudFNldEFzZkZsYWdzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBleHBsYWluU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uKCk6IFNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuU2lnbmVyTGlzdFNldDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZScsICdzaWduZXJMaXN0U2V0J10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6IDAsXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBzaWduZXJMaXN0U2V0OiB7XG4gICAgICAgIHNpZ25lclF1b3J1bTogdHguU2lnbmVyUXVvcnVtLFxuICAgICAgICBzaWduZXJFbnRyaWVzOiB0eC5TaWduZXJFbnRyaWVzIGFzIHhycGwuU2lnbmVyRW50cnlbXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlSWRGcm9tUmF3VHgocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGlkOiBzdHJpbmc7XG4gICAgLy8gaGFzaGVzIGlkcyBhcmUgZGlmZmVyZW50IGZvciBzaWduZWQgYW5kIHVuc2lnbmVkIHR4XG4gICAgLy8gZmlyc3Qgd2UgdHJ5IHRvIGdldCB0aGUgaGFzaCBpZCBhcyBpZiBpdCBpcyBzaWduZWQsIHdpbGwgdGhyb3cgaWYgaXRzIG5vdFxuICAgIHRyeSB7XG4gICAgICBpZCA9IHhycGwuaGFzaGVzLmhhc2hTaWduZWRUeChyYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWQgPSB4cnBsLmhhc2hlcy5oYXNoVHgocmF3VHJhbnNhY3Rpb24pO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldC5cbiAgICovXG4gIHNldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICBzZXRNdWx0aVNpZ1ZhbHVlKGlzTXVsdGlTaWc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9pc011bHRpU2lnID0gaXNNdWx0aVNpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHR4SGV4ID0gcmF3VHJhbnNhY3Rpb247XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkSGV4KHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdHhIZXggPSB4cnBsLmVuY29kZShKU09OLnBhcnNlKHJhd1RyYW5zYWN0aW9uKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgICB1dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHR4SGV4KTtcblxuICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uID0geHJwbC5kZWNvZGUodHhIZXgpIGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgaWYgKCFYcnBUcmFuc2FjdGlvblR5cGVbdGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlXSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlLCBnb3Q6ICcgKyB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ICE9PSAnJykge1xuICAgICAgdGhpcy5faXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ID09PSAnJyAmJlxuICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyAmJlxuICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLl9pc011bHRpU2lnID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5faWQgPSB0aGlzLmNhbGN1bGF0ZUlkRnJvbVJhd1R4KHR4SGV4KTtcblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnRTZXQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50VXBkYXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICBpZiAodXRpbHMuaXNJc3N1ZWRDdXJyZW5jeUFtb3VudCh0aGlzLl94cnBUcmFuc2FjdGlvbi5BbW91bnQpKSB7XG4gICAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuVHJ1c3RTZXQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5UcnVzdExpbmUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlID09PSBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudCkge1xuICAgICAgbGV0IHZhbHVlOiBzdHJpbmc7XG4gICAgICBjb25zdCB7IEFjY291bnQsIERlc3RpbmF0aW9uLCBBbW91bnQsIERlc3RpbmF0aW9uVGFnIH0gPSB0aGlzLl94cnBUcmFuc2FjdGlvbjtcbiAgICAgIGlmICh0eXBlb2YgQW1vdW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YWx1ZSA9IEFtb3VudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gQW1vdW50LnZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgY29pbiA9IHRoaXMuX2NvaW5Db25maWcubmFtZTtcbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBBY2NvdW50LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29pbixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5ub3JtYWxpemVBZGRyZXNzKHsgYWRkcmVzczogRGVzdGluYXRpb24sIGRlc3RpbmF0aW9uVGFnOiBEZXN0aW5hdGlvblRhZyB9KSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNvaW4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3JvdXBzIGFuZCBzb3J0cyB0aGUgc2lnbmVycyBieSBhY2NvdW50LlxuICAgKiBAcGFyYW0ge1NpZ25lcltdfXNpZ25lcnMxIC0gVGhlIGZpcnN0IHNldCBvZiBzaWduZXJzLlxuICAgKiBAcGFyYW0ge1NpZ25lcltdfXNpZ25lcnMyIC0gVGhlIHNlY29uZCBzZXQgb2Ygc2lnbmVycy5cbiAgICogQHJldHVybnMgVGhlIGdyb3VwZWQgYW5kIHNvcnRlZCBzaWduZXJzLlxuICAgKiovXG4gIHByaXZhdGUgY29uY2F0QW5kU29ydFNpZ25lcnMoc2lnbmVyczE6IFNpZ25lcltdLCBzaWduZXJzMjogU2lnbmVyW10pOiBTaWduZXJbXSB7XG4gICAgcmV0dXJuIHNpZ25lcnMxXG4gICAgICAuY29uY2F0KHNpZ25lcnMyKVxuICAgICAgLnNvcnQoKHNpZ25lcjEsIHNpZ25lcjIpID0+IHRoaXMuY29tcGFyZVNpZ25lcnNCeUFjY291bnQoc2lnbmVyMS5TaWduZXIuQWNjb3VudCwgc2lnbmVyMi5TaWduZXIuQWNjb3VudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHByZXNlbnRlZCBpbiBiaW5hcnkgZm9ybSwgdGhlIFNpZ25lcnMgYXJyYXkgbXVzdCBiZSBzb3J0ZWQgYmFzZWQgb25cbiAgICogdGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIHNpZ25lciBhZGRyZXNzZXMsIHdpdGggdGhlIGxvd2VzdCB2YWx1ZSBmaXJzdC5cbiAgICogKElmIHN1Ym1pdHRlZCBhcyBKU09OLCB0aGUgc3VibWl0X211bHRpc2lnbmVkIG1ldGhvZCBoYW5kbGVzIHRoaXMgYXV0b21hdGljYWxseS4pXG4gICAqIGh0dHBzOi8veHJwbC5vcmcvbXVsdGktc2lnbmluZy5odG1sLlxuICAgKlxuICAgKiBAcGFyYW0gbGVmdCAtIEEgU2lnbmVyIHRvIGNvbXBhcmUgd2l0aC5cbiAgICogQHBhcmFtIHJpZ2h0IC0gQSBzZWNvbmQgU2lnbmVyIHRvIGNvbXBhcmUgd2l0aC5cbiAgICogQHJldHVybnMgMSBpZiBsZWZ0IFxcPiByaWdodCwgMCBpZiBsZWZ0ID0gcmlnaHQsIC0xIGlmIGxlZnQgXFw8IHJpZ2h0LCBhbmQgbnVsbCBpZiBsZWZ0IG9yIHJpZ2h0IGFyZSBOYU4uXG4gICAqL1xuICBwcml2YXRlIGNvbXBhcmVTaWduZXJzQnlBY2NvdW50KGFkZHJlc3MxOiBzdHJpbmcsIGFkZHJlc3MyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGFkZHJlc3NCTjEgPSB0aGlzLmFkZHJlc3NUb0JpZ051bWJlcihhZGRyZXNzMSk7XG4gICAgY29uc3QgYWRkcmVzc0JOMiA9IHRoaXMuYWRkcmVzc1RvQmlnTnVtYmVyKGFkZHJlc3MyKTtcbiAgICByZXR1cm4gYWRkcmVzc0JOMS5jb21wYXJlZFRvKGFkZHJlc3NCTjIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRyZXNzVG9CaWdOdW1iZXIoYWRkcmVzczogc3RyaW5nKTogQmlnTnVtYmVyIHtcbiAgICBjb25zdCBoZXggPSBCdWZmZXIuZnJvbSh4cnBsLmRlY29kZUFjY291bnRJRChhZGRyZXNzKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IG51bWJlck9mQml0c0luSGV4ID0gMTY7XG4gICAgcmV0dXJuIG5ldyBCaWdOdW1iZXIoaGV4LCBudW1iZXJPZkJpdHNJbkhleCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
3
|
import { AccountSetBuilder } from './accountSetBuilder';
|
|
4
|
+
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
4
5
|
import { Transaction } from './transaction';
|
|
5
6
|
import { TransactionBuilder } from './transactionBuilder';
|
|
6
7
|
import { TransferBuilder } from './transferBuilder';
|
|
8
|
+
import { TrustSetBuilder } from './trustsetBuilder';
|
|
7
9
|
import { WalletInitializationBuilder } from './walletInitializationBuilder';
|
|
8
10
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
9
11
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
@@ -15,6 +17,10 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
15
17
|
getTransferBuilder(tx?: Transaction): TransferBuilder;
|
|
16
18
|
/** @inheritdoc */
|
|
17
19
|
getAccountUpdateBuilder(tx?: Transaction): AccountSetBuilder;
|
|
20
|
+
/** @inheritdoc */
|
|
21
|
+
getTokenTransferBuilder(tx?: Transaction): TokenTransferBuilder;
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
getTrustSetBuilder(tx?: Transaction): TrustSetBuilder;
|
|
18
24
|
/**
|
|
19
25
|
* Initialize the builder with the given transaction
|
|
20
26
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA8BrC,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E,kBAAkB;IACX,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAI5D,kBAAkB;IACX,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,iBAAiB;IAInE,kBAAkB;IACX,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,oBAAoB;IAItE,kBAAkB;IACX,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAI5D;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
|