@rosen-bridge/minimum-fee 2.2.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/MinimumFeeBox.d.ts +55 -0
  2. package/dist/MinimumFeeBox.d.ts.map +1 -0
  3. package/dist/MinimumFeeBox.js +219 -0
  4. package/dist/MinimumFeeBoxBuilder.d.ts +55 -0
  5. package/dist/MinimumFeeBoxBuilder.d.ts.map +1 -0
  6. package/dist/MinimumFeeBoxBuilder.js +138 -0
  7. package/dist/MinimumFeeConfig.d.ts +22 -0
  8. package/dist/MinimumFeeConfig.d.ts.map +1 -0
  9. package/dist/MinimumFeeConfig.js +41 -0
  10. package/dist/constants.d.ts +3 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +3 -0
  13. package/dist/{lib/errors.d.ts → errors.d.ts} +6 -6
  14. package/dist/errors.d.ts.map +1 -0
  15. package/dist/errors.js +26 -0
  16. package/dist/handleApiError.d.ts +18 -0
  17. package/dist/handleApiError.d.ts.map +1 -0
  18. package/dist/handleApiError.js +35 -0
  19. package/dist/{lib/index.d.ts → index.d.ts} +1 -1
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +8 -0
  22. package/dist/types.d.ts +38 -0
  23. package/dist/types.d.ts.map +1 -0
  24. package/dist/types.js +22 -0
  25. package/dist/{lib/utils.d.ts → utils.d.ts} +7 -7
  26. package/dist/utils.d.ts.map +1 -0
  27. package/dist/utils.js +111 -0
  28. package/package.json +12 -16
  29. package/dist/lib/MinimumFeeBox.d.ts +0 -65
  30. package/dist/lib/MinimumFeeBox.d.ts.map +0 -1
  31. package/dist/lib/MinimumFeeBox.js +0 -219
  32. package/dist/lib/MinimumFeeBoxBuilder.d.ts +0 -55
  33. package/dist/lib/MinimumFeeBoxBuilder.d.ts.map +0 -1
  34. package/dist/lib/MinimumFeeBoxBuilder.js +0 -168
  35. package/dist/lib/MinimumFeeConfig.d.ts +0 -26
  36. package/dist/lib/MinimumFeeConfig.d.ts.map +0 -1
  37. package/dist/lib/MinimumFeeConfig.js +0 -39
  38. package/dist/lib/constants.d.ts +0 -3
  39. package/dist/lib/constants.d.ts.map +0 -1
  40. package/dist/lib/constants.js +0 -3
  41. package/dist/lib/errors.d.ts.map +0 -1
  42. package/dist/lib/errors.js +0 -26
  43. package/dist/lib/handleApiError.d.ts +0 -37
  44. package/dist/lib/handleApiError.d.ts.map +0 -1
  45. package/dist/lib/handleApiError.js +0 -37
  46. package/dist/lib/index.d.ts.map +0 -1
  47. package/dist/lib/index.js +0 -8
  48. package/dist/lib/types.d.ts +0 -38
  49. package/dist/lib/types.d.ts.map +0 -1
  50. package/dist/lib/types.js +0 -22
  51. package/dist/lib/utils.d.ts.map +0 -1
  52. package/dist/lib/utils.js +0 -110
  53. package/dist/tsconfig.build.tsbuildinfo +0 -1
  54. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,37 +0,0 @@
1
- interface ErrorHandler<HandlerReturnType> {
2
- (error: any): HandlerReturnType;
3
- }
4
- /**
5
- * handle an axios api error, considering different kinds of events which may
6
- * cause it
7
- * @param error the error object
8
- * @param baseMessage string to prepend the actual error message
9
- * @param overrideHandlers an object for overriding how different kinds of error
10
- * are handled
11
- */
12
- declare const handleApiError: <
13
- RespondedStateHandlerReturnType = never,
14
- NotRespondedStateHandlerReturnType = never,
15
- UnknownStateHandlerReturnType = never
16
- >(
17
- error: any,
18
- baseMessage: string,
19
- overrideHandlers?:
20
- | {
21
- handleRespondedState?:
22
- | ErrorHandler<RespondedStateHandlerReturnType>
23
- | undefined;
24
- handleNotRespondedState?:
25
- | ErrorHandler<NotRespondedStateHandlerReturnType>
26
- | undefined;
27
- handleUnknownState?:
28
- | ErrorHandler<UnknownStateHandlerReturnType>
29
- | undefined;
30
- }
31
- | undefined
32
- ) =>
33
- | RespondedStateHandlerReturnType
34
- | NotRespondedStateHandlerReturnType
35
- | UnknownStateHandlerReturnType;
36
- export default handleApiError;
37
- //# sourceMappingURL=handleApiError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handleApiError.d.ts","sourceRoot":"","sources":["../../lib/handleApiError.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY,CAAC,iBAAiB;IACtC,CAAC,KAAK,EAAE,GAAG,GAAG,iBAAiB,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc,sIAKX,GAAG,eACG,MAAM;;;;sHAoCpB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,37 +0,0 @@
1
- import { FailedError, NetworkError, UnexpectedApiError } from './errors';
2
- /**
3
- * handle an axios api error, considering different kinds of events which may
4
- * cause it
5
- * @param error the error object
6
- * @param baseMessage string to prepend the actual error message
7
- * @param overrideHandlers an object for overriding how different kinds of error
8
- * are handled
9
- */
10
- const handleApiError = (error, baseMessage, overrideHandlers) => {
11
- const generateErrorMessage = (partialMessage) =>
12
- `${baseMessage} ${partialMessage}`;
13
- const handleRespondedState =
14
- overrideHandlers?.handleRespondedState ??
15
- ((error) => {
16
- throw new FailedError(generateErrorMessage(error.response.data.reason));
17
- });
18
- const handleNotRespondedState =
19
- overrideHandlers?.handleNotRespondedState ??
20
- ((error) => {
21
- throw new NetworkError(generateErrorMessage(error.message));
22
- });
23
- const handleUnknownState =
24
- overrideHandlers?.handleUnknownState ??
25
- ((error) => {
26
- throw new UnexpectedApiError(generateErrorMessage(error.message));
27
- });
28
- if (error.response) {
29
- return handleRespondedState(error);
30
- } else if (error.request) {
31
- return handleNotRespondedState(error);
32
- } else {
33
- return handleUnknownState(error);
34
- }
35
- };
36
- export default handleApiError;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlQXBpRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaGFuZGxlQXBpRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFNekU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sY0FBYyxHQUFHLENBS3JCLEtBQVUsRUFDVixXQUFtQixFQUNuQixnQkFJQyxFQUkrQixFQUFFO0lBQ2xDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxjQUFzQixFQUFFLEVBQUUsQ0FDdEQsR0FBRyxXQUFXLElBQUksY0FBYyxFQUFFLENBQUM7SUFFckMsTUFBTSxvQkFBb0IsR0FDeEIsZ0JBQWdCLEVBQUUsb0JBQW9CO1FBQ3RDLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNkLE1BQU0sSUFBSSxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztJQUNMLE1BQU0sdUJBQXVCLEdBQzNCLGdCQUFnQixFQUFFLHVCQUF1QjtRQUN6QyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDZCxNQUFNLElBQUksWUFBWSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsTUFBTSxrQkFBa0IsR0FDdEIsZ0JBQWdCLEVBQUUsa0JBQWtCO1FBQ3BDLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNkLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztJQUVMLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtRQUNsQixPQUFPLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BDO1NBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1FBQ3hCLE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdkM7U0FBTTtRQUNMLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEM7QUFDSCxDQUFDLENBQUM7QUFFRixlQUFlLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhaWxlZEVycm9yLCBOZXR3b3JrRXJyb3IsIFVuZXhwZWN0ZWRBcGlFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuaW50ZXJmYWNlIEVycm9ySGFuZGxlcjxIYW5kbGVyUmV0dXJuVHlwZT4ge1xuICAoZXJyb3I6IGFueSk6IEhhbmRsZXJSZXR1cm5UeXBlO1xufVxuXG4vKipcbiAqIGhhbmRsZSBhbiBheGlvcyBhcGkgZXJyb3IsIGNvbnNpZGVyaW5nIGRpZmZlcmVudCBraW5kcyBvZiBldmVudHMgd2hpY2ggbWF5XG4gKiBjYXVzZSBpdFxuICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciBvYmplY3RcbiAqIEBwYXJhbSBiYXNlTWVzc2FnZSBzdHJpbmcgdG8gcHJlcGVuZCB0aGUgYWN0dWFsIGVycm9yIG1lc3NhZ2VcbiAqIEBwYXJhbSBvdmVycmlkZUhhbmRsZXJzIGFuIG9iamVjdCBmb3Igb3ZlcnJpZGluZyBob3cgZGlmZmVyZW50IGtpbmRzIG9mIGVycm9yXG4gKiBhcmUgaGFuZGxlZFxuICovXG5jb25zdCBoYW5kbGVBcGlFcnJvciA9IDxcbiAgUmVzcG9uZGVkU3RhdGVIYW5kbGVyUmV0dXJuVHlwZSA9IG5ldmVyLFxuICBOb3RSZXNwb25kZWRTdGF0ZUhhbmRsZXJSZXR1cm5UeXBlID0gbmV2ZXIsXG4gIFVua25vd25TdGF0ZUhhbmRsZXJSZXR1cm5UeXBlID0gbmV2ZXJcbj4oXG4gIGVycm9yOiBhbnksXG4gIGJhc2VNZXNzYWdlOiBzdHJpbmcsXG4gIG92ZXJyaWRlSGFuZGxlcnM/OiB7XG4gICAgaGFuZGxlUmVzcG9uZGVkU3RhdGU/OiBFcnJvckhhbmRsZXI8UmVzcG9uZGVkU3RhdGVIYW5kbGVyUmV0dXJuVHlwZT47XG4gICAgaGFuZGxlTm90UmVzcG9uZGVkU3RhdGU/OiBFcnJvckhhbmRsZXI8Tm90UmVzcG9uZGVkU3RhdGVIYW5kbGVyUmV0dXJuVHlwZT47XG4gICAgaGFuZGxlVW5rbm93blN0YXRlPzogRXJyb3JIYW5kbGVyPFVua25vd25TdGF0ZUhhbmRsZXJSZXR1cm5UeXBlPjtcbiAgfVxuKTpcbiAgfCBSZXNwb25kZWRTdGF0ZUhhbmRsZXJSZXR1cm5UeXBlXG4gIHwgTm90UmVzcG9uZGVkU3RhdGVIYW5kbGVyUmV0dXJuVHlwZVxuICB8IFVua25vd25TdGF0ZUhhbmRsZXJSZXR1cm5UeXBlID0+IHtcbiAgY29uc3QgZ2VuZXJhdGVFcnJvck1lc3NhZ2UgPSAocGFydGlhbE1lc3NhZ2U6IHN0cmluZykgPT5cbiAgICBgJHtiYXNlTWVzc2FnZX0gJHtwYXJ0aWFsTWVzc2FnZX1gO1xuXG4gIGNvbnN0IGhhbmRsZVJlc3BvbmRlZFN0YXRlID1cbiAgICBvdmVycmlkZUhhbmRsZXJzPy5oYW5kbGVSZXNwb25kZWRTdGF0ZSA/P1xuICAgICgoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEZhaWxlZEVycm9yKGdlbmVyYXRlRXJyb3JNZXNzYWdlKGVycm9yLnJlc3BvbnNlLmRhdGEucmVhc29uKSk7XG4gICAgfSk7XG4gIGNvbnN0IGhhbmRsZU5vdFJlc3BvbmRlZFN0YXRlID1cbiAgICBvdmVycmlkZUhhbmRsZXJzPy5oYW5kbGVOb3RSZXNwb25kZWRTdGF0ZSA/P1xuICAgICgoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgdGhyb3cgbmV3IE5ldHdvcmtFcnJvcihnZW5lcmF0ZUVycm9yTWVzc2FnZShlcnJvci5tZXNzYWdlKSk7XG4gICAgfSk7XG4gIGNvbnN0IGhhbmRsZVVua25vd25TdGF0ZSA9XG4gICAgb3ZlcnJpZGVIYW5kbGVycz8uaGFuZGxlVW5rbm93blN0YXRlID8/XG4gICAgKChlcnJvcjogYW55KSA9PiB7XG4gICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFwaUVycm9yKGdlbmVyYXRlRXJyb3JNZXNzYWdlKGVycm9yLm1lc3NhZ2UpKTtcbiAgICB9KTtcblxuICBpZiAoZXJyb3IucmVzcG9uc2UpIHtcbiAgICByZXR1cm4gaGFuZGxlUmVzcG9uZGVkU3RhdGUoZXJyb3IpO1xuICB9IGVsc2UgaWYgKGVycm9yLnJlcXVlc3QpIHtcbiAgICByZXR1cm4gaGFuZGxlTm90UmVzcG9uZGVkU3RhdGUoZXJyb3IpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBoYW5kbGVVbmtub3duU3RhdGUoZXJyb3IpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVBcGlFcnJvcjtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,cAAc,SAAS,CAAC"}
package/dist/lib/index.js DELETED
@@ -1,8 +0,0 @@
1
- export { FEE_RATIO_DIVISOR } from './constants';
2
- export * from './types';
3
- export * from './errors';
4
- export { MinimumFeeConfig } from './MinimumFeeConfig';
5
- export { MinimumFeeBoxBuilder } from './MinimumFeeBoxBuilder';
6
- export { MinimumFeeBox } from './MinimumFeeBox';
7
- export * from './utils';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZFRV9SQVRJT19ESVZJU09SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQgeyBNaW5pbXVtRmVlQ29uZmlnIH0gZnJvbSAnLi9NaW5pbXVtRmVlQ29uZmlnJztcbmV4cG9ydCB7IE1pbmltdW1GZWVCb3hCdWlsZGVyIH0gZnJvbSAnLi9NaW5pbXVtRmVlQm94QnVpbGRlcic7XG5leHBvcnQgeyBNaW5pbXVtRmVlQm94IH0gZnJvbSAnLi9NaW5pbXVtRmVlQm94JztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuIl19
@@ -1,38 +0,0 @@
1
- import { Constant } from 'ergo-lib-wasm-nodejs';
2
- export interface Fee {
3
- heights: {
4
- [key: string]: number;
5
- };
6
- configs: {
7
- [key: string]: ChainFee;
8
- };
9
- }
10
- export interface ChainFee {
11
- bridgeFee: bigint;
12
- networkFee: bigint;
13
- rsnRatio: bigint;
14
- rsnRatioDivisor: bigint;
15
- feeRatio: bigint;
16
- }
17
- export declare class ChainMinimumFee implements ChainFee {
18
- bridgeFee: bigint;
19
- networkFee: bigint;
20
- rsnRatio: bigint;
21
- rsnRatioDivisor: bigint;
22
- feeRatio: bigint;
23
- readonly feeRatioDivisor: bigint;
24
- constructor(chainFee: ChainFee);
25
- }
26
- export declare enum ErgoNetworkType {
27
- explorer = 'explorer',
28
- node = 'node',
29
- }
30
- export interface RegisterValues {
31
- R4: Constant;
32
- R5: Constant;
33
- R6: Constant;
34
- R7: Constant;
35
- R8: Constant;
36
- R9: Constant;
37
- }
38
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAqB;gBAEzC,QAAQ,EAAE,QAAQ;CAO/B;AAED,oBAAY,eAAe;IACzB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;CACd"}
package/dist/lib/types.js DELETED
@@ -1,22 +0,0 @@
1
- import { FEE_RATIO_DIVISOR } from './constants';
2
- export class ChainMinimumFee {
3
- bridgeFee;
4
- networkFee;
5
- rsnRatio;
6
- rsnRatioDivisor;
7
- feeRatio;
8
- feeRatioDivisor = FEE_RATIO_DIVISOR;
9
- constructor(chainFee) {
10
- this.bridgeFee = chainFee.bridgeFee;
11
- this.networkFee = chainFee.networkFee;
12
- this.rsnRatio = chainFee.rsnRatio;
13
- this.rsnRatioDivisor = chainFee.rsnRatioDivisor;
14
- this.feeRatio = chainFee.feeRatio;
15
- }
16
- }
17
- export var ErgoNetworkType;
18
- (function (ErgoNetworkType) {
19
- ErgoNetworkType['explorer'] = 'explorer';
20
- ErgoNetworkType['node'] = 'node';
21
- })(ErgoNetworkType || (ErgoNetworkType = {}));
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBZWhELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBUztJQUNsQixVQUFVLENBQVM7SUFDbkIsUUFBUSxDQUFTO0lBQ2pCLGVBQWUsQ0FBUztJQUN4QixRQUFRLENBQVM7SUFDUixlQUFlLEdBQVcsaUJBQWlCLENBQUM7SUFFckQsWUFBWSxRQUFrQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsd0NBQXFCLENBQUE7SUFDckIsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0YW50IH0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgRkVFX1JBVElPX0RJVklTT1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVlIHtcbiAgaGVpZ2h0czogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfTtcbiAgY29uZmlnczogeyBba2V5OiBzdHJpbmddOiBDaGFpbkZlZSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYWluRmVlIHtcbiAgYnJpZGdlRmVlOiBiaWdpbnQ7XG4gIG5ldHdvcmtGZWU6IGJpZ2ludDtcbiAgcnNuUmF0aW86IGJpZ2ludDtcbiAgcnNuUmF0aW9EaXZpc29yOiBiaWdpbnQ7XG4gIGZlZVJhdGlvOiBiaWdpbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBDaGFpbk1pbmltdW1GZWUgaW1wbGVtZW50cyBDaGFpbkZlZSB7XG4gIGJyaWRnZUZlZTogYmlnaW50O1xuICBuZXR3b3JrRmVlOiBiaWdpbnQ7XG4gIHJzblJhdGlvOiBiaWdpbnQ7XG4gIHJzblJhdGlvRGl2aXNvcjogYmlnaW50O1xuICBmZWVSYXRpbzogYmlnaW50O1xuICByZWFkb25seSBmZWVSYXRpb0Rpdmlzb3I6IGJpZ2ludCA9IEZFRV9SQVRJT19ESVZJU09SO1xuXG4gIGNvbnN0cnVjdG9yKGNoYWluRmVlOiBDaGFpbkZlZSkge1xuICAgIHRoaXMuYnJpZGdlRmVlID0gY2hhaW5GZWUuYnJpZGdlRmVlO1xuICAgIHRoaXMubmV0d29ya0ZlZSA9IGNoYWluRmVlLm5ldHdvcmtGZWU7XG4gICAgdGhpcy5yc25SYXRpbyA9IGNoYWluRmVlLnJzblJhdGlvO1xuICAgIHRoaXMucnNuUmF0aW9EaXZpc29yID0gY2hhaW5GZWUucnNuUmF0aW9EaXZpc29yO1xuICAgIHRoaXMuZmVlUmF0aW8gPSBjaGFpbkZlZS5mZWVSYXRpbztcbiAgfVxufVxuXG5leHBvcnQgZW51bSBFcmdvTmV0d29ya1R5cGUge1xuICBleHBsb3JlciA9ICdleHBsb3JlcicsXG4gIG5vZGUgPSAnbm9kZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJWYWx1ZXMge1xuICBSNDogQ29uc3RhbnQ7XG4gIFI1OiBDb25zdGFudDtcbiAgUjY6IENvbnN0YW50O1xuICBSNzogQ29uc3RhbnQ7XG4gIFI4OiBDb25zdGFudDtcbiAgUjk6IENvbnN0YW50O1xufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAS,OAAO,KAAG,MAAM,GAAG,CAiDzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,SAAU,MAAM,GAAG,CAAC;;;;;;;CA0DnD,CAAC"}
package/dist/lib/utils.js DELETED
@@ -1,110 +0,0 @@
1
- import { Constant } from 'ergo-lib-wasm-nodejs';
2
- /**
3
- * extracts Fee config from box registers
4
- * @param box
5
- */
6
- export const extractFeeFromBox = (box) => {
7
- const R4 = box.register_value(4);
8
- const R5 = box.register_value(5);
9
- const R6 = box.register_value(6);
10
- const R7 = box.register_value(7);
11
- const R8 = box.register_value(8);
12
- const R9 = box.register_value(9);
13
- if (!R4 || !R5 || !R6 || !R7 || !R8 || !R9)
14
- throw Error(
15
- `Incomplete register data for minimum-fee config box [${box
16
- .box_id()
17
- .to_str()}]`
18
- );
19
- const fees = [];
20
- const chains = R4.to_coll_coll_byte().map((element) =>
21
- Buffer.from(element).toString()
22
- );
23
- const heights = R5.to_js();
24
- const bridgeFees = R6.to_js();
25
- const networkFees = R7.to_js();
26
- const rsnRatios = R8.to_js();
27
- const feeRatios = R9.to_js();
28
- for (let feeIdx = 0; feeIdx < heights.length; feeIdx++) {
29
- const fee = {
30
- heights: {},
31
- configs: {},
32
- };
33
- for (let chainIdx = 0; chainIdx < chains.length; chainIdx++) {
34
- const chain = chains[chainIdx];
35
- if (heights[feeIdx][chainIdx] === -1) continue;
36
- fee.heights[chain] = heights[feeIdx][chainIdx];
37
- if (bridgeFees[feeIdx][chainIdx] === '-1') continue;
38
- fee.configs[chain] = {
39
- bridgeFee: BigInt(bridgeFees[feeIdx][chainIdx]),
40
- networkFee: BigInt(networkFees[feeIdx][chainIdx]),
41
- rsnRatio: BigInt(rsnRatios[feeIdx][chainIdx][0]),
42
- rsnRatioDivisor: BigInt(rsnRatios[feeIdx][chainIdx][1]),
43
- feeRatio: BigInt(feeRatios[feeIdx][chainIdx]),
44
- };
45
- }
46
- fees.push(fee);
47
- }
48
- return fees;
49
- };
50
- /**
51
- * converts fee config to register values
52
- * @param fees
53
- * @returns
54
- */
55
- export const feeToRegisterValues = (fees) => {
56
- // extract chains
57
- const chains = [];
58
- fees.forEach((fee) => {
59
- Object.keys(fee.heights).forEach((feeChain) => {
60
- if (!chains.includes(feeChain)) chains.push(feeChain);
61
- });
62
- });
63
- chains.sort();
64
- // extract configs
65
- const heights = [];
66
- const bridgeFees = [];
67
- const networkFees = [];
68
- const rsnRatios = [];
69
- const feeRatios = [];
70
- fees.forEach((fee) => {
71
- const heightsConfigs = [];
72
- const bridgeFeesConfigs = [];
73
- const networkFeesConfigs = [];
74
- const rsnRatiosConfigs = [];
75
- const feeRatiosConfigs = [];
76
- chains.forEach((chain) => {
77
- if (Object.hasOwn(fee.heights, chain))
78
- heightsConfigs.push(fee.heights[chain]);
79
- else heightsConfigs.push(-1);
80
- if (Object.hasOwn(fee.configs, chain)) {
81
- bridgeFeesConfigs.push(fee.configs[chain].bridgeFee.toString());
82
- networkFeesConfigs.push(fee.configs[chain].networkFee.toString());
83
- rsnRatiosConfigs.push([
84
- fee.configs[chain].rsnRatio.toString(),
85
- fee.configs[chain].rsnRatioDivisor.toString(),
86
- ]);
87
- feeRatiosConfigs.push(fee.configs[chain].feeRatio.toString());
88
- } else {
89
- bridgeFeesConfigs.push('-1');
90
- networkFeesConfigs.push('-1');
91
- rsnRatiosConfigs.push(['-1', '-1']);
92
- feeRatiosConfigs.push('-1');
93
- }
94
- });
95
- heights.push(heightsConfigs);
96
- bridgeFees.push(bridgeFeesConfigs);
97
- networkFees.push(networkFeesConfigs);
98
- rsnRatios.push(rsnRatiosConfigs);
99
- feeRatios.push(feeRatiosConfigs);
100
- });
101
- return {
102
- R4: Constant.from_coll_coll_byte(chains.map((chain) => Buffer.from(chain))),
103
- R5: Constant.from_js(heights),
104
- R6: Constant.from_js(bridgeFees),
105
- R7: Constant.from_js(networkFees),
106
- R8: Constant.from_js(rsnRatios),
107
- R9: Constant.from_js(feeRatios),
108
- };
109
- };
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBR3pEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBWSxFQUFjLEVBQUU7SUFDNUQsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDeEMsTUFBTSxLQUFLLENBQ1Qsd0RBQXdELEdBQUc7YUFDeEQsTUFBTSxFQUFFO2FBQ1IsTUFBTSxFQUFFLEdBQUcsQ0FDZixDQUFDO0lBRUosTUFBTSxJQUFJLEdBQWUsRUFBRSxDQUFDO0lBQzVCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQ2hDLENBQUM7SUFDRixNQUFN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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RhbnQsIEVyZ29Cb3ggfSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBGZWUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBleHRyYWN0cyBGZWUgY29uZmlnIGZyb20gYm94IHJlZ2lzdGVyc1xuICogQHBhcmFtIGJveFxuICovXG5leHBvcnQgY29uc3QgZXh0cmFjdEZlZUZyb21Cb3ggPSAoYm94OiBFcmdvQm94KTogQXJyYXk8RmVlPiA9PiB7XG4gIGNvbnN0IFI0ID0gYm94LnJlZ2lzdGVyX3ZhbHVlKDQpO1xuICBjb25zdCBSNSA9IGJveC5yZWdpc3Rlcl92YWx1ZSg1KTtcbiAgY29uc3QgUjYgPSBib3gucmVnaXN0ZXJfdmFsdWUoNik7XG4gIGNvbnN0IFI3ID0gYm94LnJlZ2lzdGVyX3ZhbHVlKDcpO1xuICBjb25zdCBSOCA9IGJveC5yZWdpc3Rlcl92YWx1ZSg4KTtcbiAgY29uc3QgUjkgPSBib3gucmVnaXN0ZXJfdmFsdWUoOSk7XG5cbiAgaWYgKCFSNCB8fCAhUjUgfHwgIVI2IHx8ICFSNyB8fCAhUjggfHwgIVI5KVxuICAgIHRocm93IEVycm9yKFxuICAgICAgYEluY29tcGxldGUgcmVnaXN0ZXIgZGF0YSBmb3IgbWluaW11bS1mZWUgY29uZmlnIGJveCBbJHtib3hcbiAgICAgICAgLmJveF9pZCgpXG4gICAgICAgIC50b19zdHIoKX1dYFxuICAgICk7XG5cbiAgY29uc3QgZmVlczogQXJyYXk8RmVlPiA9IFtdO1xuICBjb25zdCBjaGFpbnMgPSBSNC50b19jb2xsX2NvbGxfYnl0ZSgpLm1hcCgoZWxlbWVudCkgPT5cbiAgICBCdWZmZXIuZnJvbShlbGVtZW50KS50b1N0cmluZygpXG4gICk7XG4gIGNvbnN0IGhlaWdodHMgPSBSNS50b19qcygpIGFzIEFycmF5PEFycmF5PG51bWJlcj4+O1xuICBjb25zdCBicmlkZ2VGZWVzID0gUjYudG9fanMoKSBhcyBBcnJheTxBcnJheTxzdHJpbmc+PjtcbiAgY29uc3QgbmV0d29ya0ZlZXMgPSBSNy50b19qcygpIGFzIEFycmF5PEFycmF5PHN0cmluZz4+O1xuICBjb25zdCByc25SYXRpb3MgPSBSOC50b19qcygpIGFzIEFycmF5PEFycmF5PEFycmF5PHN0cmluZz4+PjtcbiAgY29uc3QgZmVlUmF0aW9zID0gUjkudG9fanMoKSBhcyBBcnJheTxBcnJheTxzdHJpbmc+PjtcblxuICBmb3IgKGxldCBmZWVJZHggPSAwOyBmZWVJZHggPCBoZWlnaHRzLmxlbmd0aDsgZmVlSWR4KyspIHtcbiAgICBjb25zdCBmZWU6IEZlZSA9IHtcbiAgICAgIGhlaWdodHM6IHt9LFxuICAgICAgY29uZmlnczoge30sXG4gICAgfTtcbiAgICBmb3IgKGxldCBjaGFpbklkeCA9IDA7IGNoYWluSWR4IDwgY2hhaW5zLmxlbmd0aDsgY2hhaW5JZHgrKykge1xuICAgICAgY29uc3QgY2hhaW4gPSBjaGFpbnNbY2hhaW5JZHhdO1xuXG4gICAgICBpZiAoaGVpZ2h0c1tmZWVJZHhdW2NoYWluSWR4XSA9PT0gLTEpIGNvbnRpbnVlO1xuICAgICAgZmVlLmhlaWdodHNbY2hhaW5dID0gaGVpZ2h0c1tmZWVJZHhdW2NoYWluSWR4XTtcblxuICAgICAgaWYgKGJyaWRnZUZlZXNbZmVlSWR4XVtjaGFpbklkeF0gPT09ICctMScpIGNvbnRpbnVlO1xuICAgICAgZmVlLmNvbmZpZ3NbY2hhaW5dID0ge1xuICAgICAgICBicmlkZ2VGZWU6IEJpZ0ludChicmlkZ2VGZWVzW2ZlZUlkeF1bY2hhaW5JZHhdKSxcbiAgICAgICAgbmV0d29ya0ZlZTogQmlnSW50KG5ldHdvcmtGZWVzW2ZlZUlkeF1bY2hhaW5JZHhdKSxcbiAgICAgICAgcnNuUmF0aW86IEJpZ0ludChyc25SYXRpb3NbZmVlSWR4XVtjaGFpbklkeF1bMF0pLFxuICAgICAgICByc25SYXRpb0Rpdmlzb3I6IEJpZ0ludChyc25SYXRpb3NbZmVlSWR4XVtjaGFpbklkeF1bMV0pLFxuICAgICAgICBmZWVSYXRpbzogQmlnSW50KGZlZVJhdGlvc1tmZWVJZHhdW2NoYWluSWR4XSksXG4gICAgICB9O1xuICAgIH1cbiAgICBmZWVzLnB1c2goZmVlKTtcbiAgfVxuXG4gIHJldHVybiBmZWVzO1xufTtcblxuLyoqXG4gKiBjb252ZXJ0cyBmZWUgY29uZmlnIHRvIHJlZ2lzdGVyIHZhbHVlc1xuICogQHBhcmFtIGZlZXNcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBmZWVUb1JlZ2lzdGVyVmFsdWVzID0gKGZlZXM6IEFycmF5PEZlZT4pID0+IHtcbiAgLy8gIGV4dHJhY3QgY2hhaW5zXG4gIGNvbnN0IGNoYWluczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBmZWVzLmZvckVhY2goKGZlZSkgPT4ge1xuICAgIE9iamVjdC5rZXlzKGZlZS5oZWlnaHRzKS5mb3JFYWNoKChmZWVDaGFpbikgPT4ge1xuICAgICAgaWYgKCFjaGFpbnMuaW5jbHVkZXMoZmVlQ2hhaW4pKSBjaGFpbnMucHVzaChmZWVDaGFpbik7XG4gICAgfSk7XG4gIH0pO1xuICBjaGFpbnMuc29ydCgpO1xuICAvLyAgZXh0cmFjdCBjb25maWdzXG4gIGNvbnN0IGhlaWdodHM6IEFycmF5PEFycmF5PG51bWJlcj4+ID0gW107XG4gIGNvbnN0IGJyaWRnZUZlZXM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gIGNvbnN0IG5ldHdvcmtGZWVzOiBBcnJheTxBcnJheTxzdHJpbmc+PiA9IFtdO1xuICBjb25zdCByc25SYXRpb3M6IEFycmF5PEFycmF5PEFycmF5PHN0cmluZz4+PiA9IFtdO1xuICBjb25zdCBmZWVSYXRpb3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gIGZlZXMuZm9yRWFjaCgoZmVlKSA9PiB7XG4gICAgY29uc3QgaGVpZ2h0c0NvbmZpZ3M6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgICBjb25zdCBicmlkZ2VGZWVzQ29uZmlnczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGNvbnN0IG5ldHdvcmtGZWVzQ29uZmlnczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGNvbnN0IHJzblJhdGlvc0NvbmZpZ3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gICAgY29uc3QgZmVlUmF0aW9zQ29uZmlnczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgY2hhaW5zLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0Lmhhc093bihmZWUuaGVpZ2h0cywgY2hhaW4pKVxuICAgICAgICBoZWlnaHRzQ29uZmlncy5wdXNoKGZlZS5oZWlnaHRzW2NoYWluXSk7XG4gICAgICBlbHNlIGhlaWdodHNDb25maWdzLnB1c2goLTEpO1xuXG4gICAgICBpZiAoT2JqZWN0Lmhhc093bihmZWUuY29uZmlncywgY2hhaW4pKSB7XG4gICAgICAgIGJyaWRnZUZlZXNDb25maWdzLnB1c2goZmVlLmNvbmZpZ3NbY2hhaW5dLmJyaWRnZUZlZS50b1N0cmluZygpKTtcbiAgICAgICAgbmV0d29ya0ZlZXNDb25maWdzLnB1c2goZmVlLmNvbmZpZ3NbY2hhaW5dLm5ldHdvcmtGZWUudG9TdHJpbmcoKSk7XG4gICAgICAgIHJzblJhdGlvc0NvbmZpZ3MucHVzaChbXG4gICAgICAgICAgZmVlLmNvbmZpZ3NbY2hhaW5dLnJzblJhdGlvLnRvU3RyaW5nKCksXG4gICAgICAgICAgZmVlLmNvbmZpZ3NbY2hhaW5dLnJzblJhdGlvRGl2aXNvci50b1N0cmluZygpLFxuICAgICAgICBdKTtcbiAgICAgICAgZmVlUmF0aW9zQ29uZmlncy5wdXNoKGZlZS5jb25maWdzW2NoYWluXS5mZWVSYXRpby50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyaWRnZUZlZXNDb25maWdzLnB1c2goJy0xJyk7XG4gICAgICAgIG5ldHdvcmtGZWVzQ29uZmlncy5wdXNoKCctMScpO1xuICAgICAgICByc25SYXRpb3NDb25maWdzLnB1c2goWyctMScsICctMSddKTtcbiAgICAgICAgZmVlUmF0aW9zQ29uZmlncy5wdXNoKCctMScpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaGVpZ2h0cy5wdXNoKGhlaWdodHNDb25maWdzKTtcbiAgICBicmlkZ2VGZWVzLnB1c2goYnJpZGdlRmVlc0NvbmZpZ3MpO1xuICAgIG5ldHdvcmtGZWVzLnB1c2gobmV0d29ya0ZlZXNDb25maWdzKTtcbiAgICByc25SYXRpb3MucHVzaChyc25SYXRpb3NDb25maWdzKTtcbiAgICBmZWVSYXRpb3MucHVzaChmZWVSYXRpb3NDb25maWdzKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBSNDogQ29uc3RhbnQuZnJvbV9jb2xsX2NvbGxfYnl0ZShjaGFpbnMubWFwKChjaGFpbikgPT4gQnVmZmVyLmZyb20oY2hhaW4pKSksXG4gICAgUjU6IENvbnN0YW50LmZyb21fanMoaGVpZ2h0cyksXG4gICAgUjY6IENvbnN0YW50LmZyb21fanMoYnJpZGdlRmVlcyksXG4gICAgUjc6IENvbnN0YW50LmZyb21fanMobmV0d29ya0ZlZXMpLFxuICAgIFI4OiBDb25zdGFudC5mcm9tX2pzKHJzblJhdGlvcyksXG4gICAgUjk6IENvbnN0YW50LmZyb21fanMoZmVlUmF0aW9zKSxcbiAgfTtcbn07XG4iXX0=