@yaswap/error-parser 2.0.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.
- package/CHANGELOG.md +469 -0
- package/README.md +117 -0
- package/dist/package.json +34 -0
- package/dist/src/LiqualityErrors/DappNotConnectedError.d.ts +9 -0
- package/dist/src/LiqualityErrors/DappNotConnectedError.js +15 -0
- package/dist/src/LiqualityErrors/DappNotConnectedError.js.map +1 -0
- package/dist/src/LiqualityErrors/DuplicateTokenSymbolError.d.ts +4 -0
- package/dist/src/LiqualityErrors/DuplicateTokenSymbolError.js +12 -0
- package/dist/src/LiqualityErrors/DuplicateTokenSymbolError.js.map +1 -0
- package/dist/src/LiqualityErrors/HighInputAmountError.d.ts +9 -0
- package/dist/src/LiqualityErrors/HighInputAmountError.js +15 -0
- package/dist/src/LiqualityErrors/HighInputAmountError.js.map +1 -0
- package/dist/src/LiqualityErrors/InsufficientFundsError.d.ts +9 -0
- package/dist/src/LiqualityErrors/InsufficientFundsError.js +12 -0
- package/dist/src/LiqualityErrors/InsufficientFundsError.js.map +1 -0
- package/dist/src/LiqualityErrors/InsufficientGasFeeError.d.ts +8 -0
- package/dist/src/LiqualityErrors/InsufficientGasFeeError.js +12 -0
- package/dist/src/LiqualityErrors/InsufficientGasFeeError.js.map +1 -0
- package/dist/src/LiqualityErrors/InsufficientInputAmountError.d.ts +8 -0
- package/dist/src/LiqualityErrors/InsufficientInputAmountError.js +12 -0
- package/dist/src/LiqualityErrors/InsufficientInputAmountError.js.map +1 -0
- package/dist/src/LiqualityErrors/InsufficientLiquidityError.d.ts +10 -0
- package/dist/src/LiqualityErrors/InsufficientLiquidityError.js +15 -0
- package/dist/src/LiqualityErrors/InsufficientLiquidityError.js.map +1 -0
- package/dist/src/LiqualityErrors/InternalError.d.ts +5 -0
- package/dist/src/LiqualityErrors/InternalError.js +15 -0
- package/dist/src/LiqualityErrors/InternalError.js.map +1 -0
- package/dist/src/LiqualityErrors/LedgerAppMismatchError.d.ts +4 -0
- package/dist/src/LiqualityErrors/LedgerAppMismatchError.js +12 -0
- package/dist/src/LiqualityErrors/LedgerAppMismatchError.js.map +1 -0
- package/dist/src/LiqualityErrors/LedgerDappConflictError.d.ts +4 -0
- package/dist/src/LiqualityErrors/LedgerDappConflictError.js +12 -0
- package/dist/src/LiqualityErrors/LedgerDappConflictError.js.map +1 -0
- package/dist/src/LiqualityErrors/LedgerDeviceConnectionError.d.ts +4 -0
- package/dist/src/LiqualityErrors/LedgerDeviceConnectionError.js +12 -0
- package/dist/src/LiqualityErrors/LedgerDeviceConnectionError.js.map +1 -0
- package/dist/src/LiqualityErrors/LedgerDeviceLockedError.d.ts +4 -0
- package/dist/src/LiqualityErrors/LedgerDeviceLockedError.js +12 -0
- package/dist/src/LiqualityErrors/LedgerDeviceLockedError.js.map +1 -0
- package/dist/src/LiqualityErrors/LedgerDeviceNotUpdatedError.d.ts +4 -0
- package/dist/src/LiqualityErrors/LedgerDeviceNotUpdatedError.js +12 -0
- package/dist/src/LiqualityErrors/LedgerDeviceNotUpdatedError.js.map +1 -0
- package/dist/src/LiqualityErrors/LedgerDeviceSmartContractTransactionDisabledError.d.ts +4 -0
- package/dist/src/LiqualityErrors/LedgerDeviceSmartContractTransactionDisabledError.js +12 -0
- package/dist/src/LiqualityErrors/LedgerDeviceSmartContractTransactionDisabledError.js.map +1 -0
- package/dist/src/LiqualityErrors/LiqualityError.d.ts +22 -0
- package/dist/src/LiqualityErrors/LiqualityError.js +39 -0
- package/dist/src/LiqualityErrors/LiqualityError.js.map +1 -0
- package/dist/src/LiqualityErrors/LowSpeedupFeeError.d.ts +4 -0
- package/dist/src/LiqualityErrors/LowSpeedupFeeError.js +12 -0
- package/dist/src/LiqualityErrors/LowSpeedupFeeError.js.map +1 -0
- package/dist/src/LiqualityErrors/NoActiveWalletError.d.ts +5 -0
- package/dist/src/LiqualityErrors/NoActiveWalletError.js +15 -0
- package/dist/src/LiqualityErrors/NoActiveWalletError.js.map +1 -0
- package/dist/src/LiqualityErrors/NoTipError.d.ts +4 -0
- package/dist/src/LiqualityErrors/NoTipError.js +12 -0
- package/dist/src/LiqualityErrors/NoTipError.js.map +1 -0
- package/dist/src/LiqualityErrors/PairNotSupportedError.d.ts +8 -0
- package/dist/src/LiqualityErrors/PairNotSupportedError.js +12 -0
- package/dist/src/LiqualityErrors/PairNotSupportedError.js.map +1 -0
- package/dist/src/LiqualityErrors/PasswordError.d.ts +4 -0
- package/dist/src/LiqualityErrors/PasswordError.js +12 -0
- package/dist/src/LiqualityErrors/PasswordError.js.map +1 -0
- package/dist/src/LiqualityErrors/SlippageTooHighError.d.ts +9 -0
- package/dist/src/LiqualityErrors/SlippageTooHighError.js +12 -0
- package/dist/src/LiqualityErrors/SlippageTooHighError.js.map +1 -0
- package/dist/src/LiqualityErrors/ThirdPartyError.d.ts +9 -0
- package/dist/src/LiqualityErrors/ThirdPartyError.js +23 -0
- package/dist/src/LiqualityErrors/ThirdPartyError.js.map +1 -0
- package/dist/src/LiqualityErrors/UnknownError.d.ts +5 -0
- package/dist/src/LiqualityErrors/UnknownError.js +13 -0
- package/dist/src/LiqualityErrors/UnknownError.js.map +1 -0
- package/dist/src/LiqualityErrors/UserDeclinedError.d.ts +5 -0
- package/dist/src/LiqualityErrors/UserDeclinedError.js +15 -0
- package/dist/src/LiqualityErrors/UserDeclinedError.js.map +1 -0
- package/dist/src/LiqualityErrors/ValidationError.d.ts +5 -0
- package/dist/src/LiqualityErrors/ValidationError.js +15 -0
- package/dist/src/LiqualityErrors/ValidationError.js.map +1 -0
- package/dist/src/LiqualityErrors/VeryHighMaxFeeWarning.d.ts +7 -0
- package/dist/src/LiqualityErrors/VeryHighMaxFeeWarning.js +12 -0
- package/dist/src/LiqualityErrors/VeryHighMaxFeeWarning.js.map +1 -0
- package/dist/src/LiqualityErrors/VeryHighTipWarning.d.ts +4 -0
- package/dist/src/LiqualityErrors/VeryHighTipWarning.js +12 -0
- package/dist/src/LiqualityErrors/VeryHighTipWarning.js.map +1 -0
- package/dist/src/LiqualityErrors/VeryLowMaxFeeError.d.ts +7 -0
- package/dist/src/LiqualityErrors/VeryLowMaxFeeError.js +12 -0
- package/dist/src/LiqualityErrors/VeryLowMaxFeeError.js.map +1 -0
- package/dist/src/LiqualityErrors/VeryLowTipError.d.ts +4 -0
- package/dist/src/LiqualityErrors/VeryLowTipError.js +12 -0
- package/dist/src/LiqualityErrors/VeryLowTipError.js.map +1 -0
- package/dist/src/LiqualityErrors/WalletLockedError.d.ts +5 -0
- package/dist/src/LiqualityErrors/WalletLockedError.js +15 -0
- package/dist/src/LiqualityErrors/WalletLockedError.js.map +1 -0
- package/dist/src/LiqualityErrors/customErrors.d.ts +91 -0
- package/dist/src/LiqualityErrors/customErrors.js +95 -0
- package/dist/src/LiqualityErrors/customErrors.js.map +1 -0
- package/dist/src/LiqualityErrors/index.d.ts +31 -0
- package/dist/src/LiqualityErrors/index.js +66 -0
- package/dist/src/LiqualityErrors/index.js.map +1 -0
- package/dist/src/config.d.ts +39 -0
- package/dist/src/config.js +43 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/factory/index.d.ts +1 -0
- package/dist/src/factory/index.js +18 -0
- package/dist/src/factory/index.js.map +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.js +19 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/parsers/Chainify/ChainifyErrorParser.d.ts +7 -0
- package/dist/src/parsers/Chainify/ChainifyErrorParser.js +63 -0
- package/dist/src/parsers/Chainify/ChainifyErrorParser.js.map +1 -0
- package/dist/src/parsers/Chainify/JsonRPCNodeErrorParser.d.ts +7 -0
- package/dist/src/parsers/Chainify/JsonRPCNodeErrorParser.js +29 -0
- package/dist/src/parsers/Chainify/JsonRPCNodeErrorParser.js.map +1 -0
- package/dist/src/parsers/Chainify/LedgerErrorParser.d.ts +7 -0
- package/dist/src/parsers/Chainify/LedgerErrorParser.js +46 -0
- package/dist/src/parsers/Chainify/LedgerErrorParser.js.map +1 -0
- package/dist/src/parsers/Chainify/index.d.ts +16 -0
- package/dist/src/parsers/Chainify/index.js +20 -0
- package/dist/src/parsers/Chainify/index.js.map +1 -0
- package/dist/src/parsers/Debridge/DebridgeAPIErrorParser.d.ts +8 -0
- package/dist/src/parsers/Debridge/DebridgeAPIErrorParser.js +48 -0
- package/dist/src/parsers/Debridge/DebridgeAPIErrorParser.js.map +1 -0
- package/dist/src/parsers/Debridge/index.d.ts +16 -0
- package/dist/src/parsers/Debridge/index.js +14 -0
- package/dist/src/parsers/Debridge/index.js.map +1 -0
- package/dist/src/parsers/ErrorParser.d.ts +8 -0
- package/dist/src/parsers/ErrorParser.js +37 -0
- package/dist/src/parsers/ErrorParser.js.map +1 -0
- package/dist/src/parsers/LifiAPI/QuoteErrorParser.d.ts +7 -0
- package/dist/src/parsers/LifiAPI/QuoteErrorParser.js +72 -0
- package/dist/src/parsers/LifiAPI/QuoteErrorParser.js.map +1 -0
- package/dist/src/parsers/LifiAPI/index.d.ts +45 -0
- package/dist/src/parsers/LifiAPI/index.js +34 -0
- package/dist/src/parsers/LifiAPI/index.js.map +1 -0
- package/dist/src/parsers/OneInchAPI/ApproveErrorParser.d.ts +7 -0
- package/dist/src/parsers/OneInchAPI/ApproveErrorParser.js +42 -0
- package/dist/src/parsers/OneInchAPI/ApproveErrorParser.js.map +1 -0
- package/dist/src/parsers/OneInchAPI/QuoteErrorParser.d.ts +4 -0
- package/dist/src/parsers/OneInchAPI/QuoteErrorParser.js +10 -0
- package/dist/src/parsers/OneInchAPI/QuoteErrorParser.js.map +1 -0
- package/dist/src/parsers/OneInchAPI/SwapErrorParser.d.ts +13 -0
- package/dist/src/parsers/OneInchAPI/SwapErrorParser.js +70 -0
- package/dist/src/parsers/OneInchAPI/SwapErrorParser.js.map +1 -0
- package/dist/src/parsers/OneInchAPI/index.d.ts +26 -0
- package/dist/src/parsers/OneInchAPI/index.js +22 -0
- package/dist/src/parsers/OneInchAPI/index.js.map +1 -0
- package/dist/src/parsers/Thorchain/ThorchainAPIErrorParser.d.ts +9 -0
- package/dist/src/parsers/Thorchain/ThorchainAPIErrorParser.js +31 -0
- package/dist/src/parsers/Thorchain/ThorchainAPIErrorParser.js.map +1 -0
- package/dist/src/parsers/Thorchain/index.d.ts +4 -0
- package/dist/src/parsers/Thorchain/index.js +8 -0
- package/dist/src/parsers/Thorchain/index.js.map +1 -0
- package/dist/src/parsers/UniswapV2/UniswapV2SwapErrorParser.d.ts +7 -0
- package/dist/src/parsers/UniswapV2/UniswapV2SwapErrorParser.js +33 -0
- package/dist/src/parsers/UniswapV2/UniswapV2SwapErrorParser.js.map +1 -0
- package/dist/src/parsers/UniswapV2/index.d.ts +4 -0
- package/dist/src/parsers/UniswapV2/index.js +8 -0
- package/dist/src/parsers/UniswapV2/index.js.map +1 -0
- package/dist/src/parsers/index.d.ts +9 -0
- package/dist/src/parsers/index.js +13 -0
- package/dist/src/parsers/index.js.map +1 -0
- package/dist/src/reporters/console.d.ts +3 -0
- package/dist/src/reporters/console.js +18 -0
- package/dist/src/reporters/console.js.map +1 -0
- package/dist/src/reporters/discord.d.ts +3 -0
- package/dist/src/reporters/discord.js +64 -0
- package/dist/src/reporters/discord.js.map +1 -0
- package/dist/src/reporters/index.d.ts +6 -0
- package/dist/src/reporters/index.js +47 -0
- package/dist/src/reporters/index.js.map +1 -0
- package/dist/src/test/chainify/jsonRPCNode.test.d.ts +1 -0
- package/dist/src/test/chainify/jsonRPCNode.test.js +49 -0
- package/dist/src/test/chainify/jsonRPCNode.test.js.map +1 -0
- package/dist/src/test/chainify/ledgerDevice.test.d.ts +1 -0
- package/dist/src/test/chainify/ledgerDevice.test.js +58 -0
- package/dist/src/test/chainify/ledgerDevice.test.js.map +1 -0
- package/dist/src/test/chainify/uniswapV2.test.d.ts +1 -0
- package/dist/src/test/chainify/uniswapV2.test.js +49 -0
- package/dist/src/test/chainify/uniswapV2.test.js.map +1 -0
- package/dist/src/test/debridgeAPI.test.d.ts +1 -0
- package/dist/src/test/debridgeAPI.test.js +58 -0
- package/dist/src/test/debridgeAPI.test.js.map +1 -0
- package/dist/src/test/index.d.ts +3 -0
- package/dist/src/test/index.js +26 -0
- package/dist/src/test/index.js.map +1 -0
- package/dist/src/test/lifi/quoteAPI.test.d.ts +1 -0
- package/dist/src/test/lifi/quoteAPI.test.js +60 -0
- package/dist/src/test/lifi/quoteAPI.test.js.map +1 -0
- package/dist/src/test/oneInch/approveAPI.test.d.ts +1 -0
- package/dist/src/test/oneInch/approveAPI.test.js +91 -0
- package/dist/src/test/oneInch/approveAPI.test.js.map +1 -0
- package/dist/src/test/oneInch/swapAPI.test.d.ts +1 -0
- package/dist/src/test/oneInch/swapAPI.test.js +125 -0
- package/dist/src/test/oneInch/swapAPI.test.js.map +1 -0
- package/dist/src/test/thorchainAPI.test.d.ts +1 -0
- package/dist/src/test/thorchainAPI.test.js +48 -0
- package/dist/src/test/thorchainAPI.test.js.map +1 -0
- package/dist/src/types/index.d.ts +26 -0
- package/dist/src/types/index.js +9 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/index.d.ts +10 -0
- package/dist/src/utils/index.js +47 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const __2 = require("../..");
|
|
6
|
+
const parsers_1 = require("../../parsers");
|
|
7
|
+
const ValidationError_1 = require("../../LiqualityErrors/ValidationError");
|
|
8
|
+
describe('UniswapV2Error parser', () => {
|
|
9
|
+
const parser = (0, __2.getErrorParser)(parsers_1.ChainifyErrorParser);
|
|
10
|
+
const UNISWAP_V2_K_ERROR = 'cannot estimate gas; transaction may fail or may require manual gas limit [ See: https://links.ethers.org/v5-errors-UNPREDICTABLE_GAS_LIMIT ] (reason="execution reverted: UniswapV2: K", method="estimateGas", transaction={"from":"0x684C4274202a003fEbB2C12f6016aF090EbeC3aE","maxPriorityFeePerGas":{"type":"BigNumber","hex":"0x4c25524c"},"maxFeePerGas":{"type":"BigNumber","hex":"0x03a8c924a8"},"to":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","value":{"type":"BigNumber","hex":"0x00"},"data":"0x18cbafe50000000000000000000000000000000000000000000000000097a5c8063cd000000000000000000000000000000000000000000000000000009429ae7945c24f00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000684c4274202a003febb2c12f6016af090ebec3ae000000000000000000000000000000000000000000000000000000006384c60b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","type":2,"accessList":null}, error={"reason":"processing response error","code":"SERVER_ERROR","body":"{"jsonrpc":"2.0","id":124,"error":{"code":3,"data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c556e697377617056323a204b0000000000000000000000000000000000000000","message":"execution reverted: UniswapV2: K"}}","error":{"code":3,"data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c556e697377617056323a204b0000000000000000000000000000000000000000"},"requestBody":"{"method":"eth_estimateGas","params":[{"type":"0x2","maxFeePerGas":"0x3a8c924a8","maxPriorityFeePerGas":"0x4c25524c","value":"0x0","from":"0x684c4274202a003febb2c12f6016af090ebec3ae","to":"0x7a250d5630b4cf539739df2c5dacb4c659f2488d","data":"0x18cbafe50000000000000000000000000000000000000000000000000097a5c8063cd000000000000000000000000000000000000000000000000000009429ae7945c24f00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000684c4274202a003febb2c12f6016af090ebec3ae000000000000000000000000000000000000000000000000000000006384c60b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}],"id":124,"jsonrpc":"2.0"}","requestMethod":"POST","url":"https://mainnet.infura.io/v3/a2ad6f8c0e57453ca4918331f16de87d"}, code=UNPREDICTABLE_GAS_LIMIT, version=providers/5.7.0)"';
|
|
11
|
+
const errorMap = [[UNISWAP_V2_K_ERROR, ValidationError_1.ValidationError.name]];
|
|
12
|
+
it('should not log anything to console', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
const logSpy = jest.spyOn(console, 'log');
|
|
14
|
+
(0, __1.getError)(() => {
|
|
15
|
+
return parser.wrap(() => {
|
|
16
|
+
throw __1.FAKE_ERROR;
|
|
17
|
+
}, null);
|
|
18
|
+
});
|
|
19
|
+
yield (0, __1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
return yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
throw __1.FAKE_ERROR;
|
|
22
|
+
}), null);
|
|
23
|
+
}));
|
|
24
|
+
expect(logSpy).toHaveBeenCalledTimes(0);
|
|
25
|
+
}));
|
|
26
|
+
it.each(errorMap)("should map '%s' => '%s'", (sourceError, liqError) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const validError = {
|
|
28
|
+
message: sourceError,
|
|
29
|
+
name: 'NodeError',
|
|
30
|
+
};
|
|
31
|
+
const error = (0, __1.getError)(() => {
|
|
32
|
+
parser.wrap(() => {
|
|
33
|
+
throw validError;
|
|
34
|
+
}, null);
|
|
35
|
+
});
|
|
36
|
+
expect(error.name).toBe(liqError);
|
|
37
|
+
expect(error.source).toBe(parsers_1.UniswapV2SwapErroParser.errorSource);
|
|
38
|
+
expect(error.rawError).toBe(validError);
|
|
39
|
+
const error1 = yield (0, __1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
+
throw validError;
|
|
42
|
+
}), null);
|
|
43
|
+
}));
|
|
44
|
+
expect(error1.name).toBe(liqError);
|
|
45
|
+
expect(error1.source).toBe(parsers_1.UniswapV2SwapErroParser.errorSource);
|
|
46
|
+
expect(error1.rawError).toBe(validError);
|
|
47
|
+
}));
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=uniswapV2.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniswapV2.test.js","sourceRoot":"","sources":["../../../../src/test/chainify/uniswapV2.test.ts"],"names":[],"mappings":";;;AAAA,0BAAyD;AAEzD,6BAAuC;AACvC,2CAA6E;AAC7E,2EAAwE;AAExE,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,MAAM,GAAG,IAAA,kBAAc,EAAC,6BAAmB,CAAC,CAAC;IAEnD,MAAM,kBAAkB,GACtB,wjFAAwjF,CAAC;IAE3jF,MAAM,QAAQ,GAAG,CAAC,CAAC,kBAAkB,EAAE,iCAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,oCAAoC,EAAE,GAAS,EAAE;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE1C,IAAA,YAAQ,EAAC,GAAG,EAAE;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,MAAM,cAAU,CAAC;YACnB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAM,IAAA,iBAAa,EAAC,GAAS,EAAE;YAC7B,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,GAAS,EAAE;gBACvC,MAAM,cAAU,CAAC;YACnB,CAAC,CAAA,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAA,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,yBAAyB,EAAE,CAAO,WAAW,EAAE,QAAQ,EAAE,EAAE;QAC3E,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,WAAW;SAClB,CAAC;QAEF,MAAM,KAAK,GAAmB,IAAA,YAAQ,EAAC,GAAG,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,MAAM,UAAU,CAAC;YACnB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iCAAuB,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExC,MAAM,MAAM,GAAmB,MAAM,IAAA,iBAAa,EAAC,GAAS,EAAE;YAC5D,MAAM,MAAM,CAAC,SAAS,CAAC,GAAS,EAAE;gBAChC,MAAM,UAAU,CAAC;YACnB,CAAC,CAAA,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAA,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iCAAuB,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const Debridge_1 = require("../parsers/Debridge");
|
|
7
|
+
const DebridgeAPIErrorParser_1 = require("../parsers/Debridge/DebridgeAPIErrorParser");
|
|
8
|
+
describe('DebridgeAPI parser', () => {
|
|
9
|
+
const parser = (0, __1.getErrorParser)(DebridgeAPIErrorParser_1.DebridgeAPIErrorParser);
|
|
10
|
+
const errorMap = [
|
|
11
|
+
[Debridge_1.DEBRIDGE_ERRORS.INVALID_QUERY_PARAMETERS, __1.InternalError.name],
|
|
12
|
+
[Debridge_1.DEBRIDGE_ERRORS.SOURCE_AND_DESTINATION_CHAINS_ARE_EQUAL, __1.PairNotSupportedError.name],
|
|
13
|
+
[Debridge_1.DEBRIDGE_ERRORS.INCLUDED_GAS_FEE_NOT_COVERED_BY_INPUT_AMOUNT, __1.InsufficientInputAmountError.name],
|
|
14
|
+
[Debridge_1.DEBRIDGE_ERRORS.INCLUDED_GAS_FEE_CANNOT_BE_ESTIMATED_FOR_TRANSACTION_BUNDLE, __1.InternalError.name],
|
|
15
|
+
[Debridge_1.DEBRIDGE_ERRORS.CONNECTOR_1INCH_RETURNED_ERROR, __1.ThirdPartyError.name],
|
|
16
|
+
[Debridge_1.DEBRIDGE_ERRORS.INTERNAL_SERVER_ERROR, __1.ThirdPartyError.name],
|
|
17
|
+
[Debridge_1.DEBRIDGE_ERRORS.INTERNAL_SDK_ERROR, __1.ThirdPartyError.name],
|
|
18
|
+
];
|
|
19
|
+
it('should not log anything to console', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
const logSpy = jest.spyOn(console, 'log');
|
|
21
|
+
(0, _1.getError)(() => {
|
|
22
|
+
return parser.wrap(() => {
|
|
23
|
+
throw _1.FAKE_ERROR;
|
|
24
|
+
}, null);
|
|
25
|
+
});
|
|
26
|
+
yield (0, _1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
return yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
throw _1.FAKE_ERROR;
|
|
29
|
+
}), null);
|
|
30
|
+
}));
|
|
31
|
+
expect(logSpy).toHaveBeenCalledTimes(0);
|
|
32
|
+
}));
|
|
33
|
+
it.each(errorMap)("should map '%s' => '%s'", (sourceError, liqError) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
const validError = {
|
|
35
|
+
errorCode: 0,
|
|
36
|
+
errorId: sourceError,
|
|
37
|
+
errorMessage: '',
|
|
38
|
+
errorPayload: {},
|
|
39
|
+
};
|
|
40
|
+
const error = (0, _1.getError)(() => {
|
|
41
|
+
parser.wrap(() => {
|
|
42
|
+
throw validError;
|
|
43
|
+
}, null);
|
|
44
|
+
});
|
|
45
|
+
expect(error.name).toBe(liqError);
|
|
46
|
+
expect(error.source).toBe(DebridgeAPIErrorParser_1.DebridgeAPIErrorParser.errorSource);
|
|
47
|
+
expect(error.rawError).toBe(validError);
|
|
48
|
+
const error1 = yield (0, _1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
throw validError;
|
|
51
|
+
}), null);
|
|
52
|
+
}));
|
|
53
|
+
expect(error1.name).toBe(liqError);
|
|
54
|
+
expect(error1.source).toBe(DebridgeAPIErrorParser_1.DebridgeAPIErrorParser.errorSource);
|
|
55
|
+
expect(error1.rawError).toBe(validError);
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=debridgeAPI.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debridgeAPI.test.js","sourceRoot":"","sources":["../../../src/test/debridgeAPI.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getErrorAsync = exports.getError = exports.FAKE_ERROR = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
exports.FAKE_ERROR = 'Fake Error';
|
|
6
|
+
function getError(func) {
|
|
7
|
+
try {
|
|
8
|
+
return func();
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
return error;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.getError = getError;
|
|
15
|
+
function getErrorAsync(func) {
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
try {
|
|
18
|
+
return yield func();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
return error;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.getErrorAsync = getErrorAsync;
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":";;;;AAAa,QAAA,UAAU,GAAG,YAAY,CAAC;AAEvC,SAAgB,QAAQ,CAAC,IAAmB;IAC1C,IAAI;QACF,OAAO,IAAI,EAAE,CAAC;KACf;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,4BAMC;AAED,SAAsB,aAAa,CAAC,IAA4B;;QAC9D,IAAI;YACF,OAAO,MAAM,IAAI,EAAE,CAAC;SACrB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,KAAK,CAAC;SACd;IACH,CAAC;CAAA;AAND,sCAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const LifiAPI_1 = require("../../parsers/LifiAPI");
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const RandExp = require("randexp");
|
|
6
|
+
const __2 = require("../..");
|
|
7
|
+
describe('LifiQuoteAPI parser', () => {
|
|
8
|
+
const parser = (0, __2.getErrorParser)(__2.LifiQuoteErrorParser);
|
|
9
|
+
const errorMap = [
|
|
10
|
+
[LifiAPI_1.LIFI_QUOTE_ERRORS.InvalidAddress, [], __2.InternalError.name],
|
|
11
|
+
[LifiAPI_1.LIFI_QUOTE_ERRORS.UnknownAddressOrSymbol, [], __2.InternalError.name],
|
|
12
|
+
[LifiAPI_1.LIFI_QUOTE_ERRORS.InvalidChain, [], __2.InternalError.name],
|
|
13
|
+
[LifiAPI_1.LIFI_QUOTE_ERRORS.NoToolsCanCompleteTheAction, [], __2.PairNotSupportedError.name],
|
|
14
|
+
[
|
|
15
|
+
LifiAPI_1.LIFI_QUOTE_ERRORS.NoQuoteFound,
|
|
16
|
+
[{ code: LifiAPI_1.ToolErrorCode.NO_POSSIBLE_ROUTE }, { code: LifiAPI_1.ToolErrorCode.AMOUNT_TOO_LOW }],
|
|
17
|
+
__2.InsufficientInputAmountError.name,
|
|
18
|
+
],
|
|
19
|
+
[
|
|
20
|
+
LifiAPI_1.LIFI_QUOTE_ERRORS.NoQuoteFound,
|
|
21
|
+
[{ code: LifiAPI_1.ToolErrorCode.NO_POSSIBLE_ROUTE }, { code: LifiAPI_1.ToolErrorCode.FEES_HGHER_THAN_AMOUNT }],
|
|
22
|
+
__2.InsufficientInputAmountError.name,
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
LifiAPI_1.LIFI_QUOTE_ERRORS.NoQuoteFound,
|
|
26
|
+
[{ code: LifiAPI_1.ToolErrorCode.NO_POSSIBLE_ROUTE }, { code: LifiAPI_1.ToolErrorCode.AMOUNT_TOO_HIGH }],
|
|
27
|
+
__2.HighInputAmountError.name,
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
LifiAPI_1.LIFI_QUOTE_ERRORS.NoQuoteFound,
|
|
31
|
+
[{ code: LifiAPI_1.ToolErrorCode.NO_POSSIBLE_ROUTE }, { code: LifiAPI_1.ToolErrorCode.INSUFFICIENT_LIQUIDITY }],
|
|
32
|
+
__2.InsufficientLiquidityError.name,
|
|
33
|
+
],
|
|
34
|
+
];
|
|
35
|
+
const emptyContext = {
|
|
36
|
+
fromChain: 1,
|
|
37
|
+
fromToken: '0x',
|
|
38
|
+
fromAddress: '0x',
|
|
39
|
+
fromAmount: '0',
|
|
40
|
+
toChain: 2,
|
|
41
|
+
toToken: '0x',
|
|
42
|
+
toAddress: '0x',
|
|
43
|
+
};
|
|
44
|
+
it.each(errorMap)("should map '%s' => '%s'", (message, errors, lifiError) => {
|
|
45
|
+
const validError = {
|
|
46
|
+
message: new RandExp(message).gen(),
|
|
47
|
+
errors: errors,
|
|
48
|
+
};
|
|
49
|
+
const error = (0, __1.getError)(() => {
|
|
50
|
+
parser.wrap(() => {
|
|
51
|
+
throw validError;
|
|
52
|
+
}, emptyContext);
|
|
53
|
+
});
|
|
54
|
+
expect(error.name).toBe(lifiError);
|
|
55
|
+
expect(error.source).toBe(__2.LifiQuoteErrorParser.errorSource);
|
|
56
|
+
expect(error.devMsg.data).toBe(emptyContext);
|
|
57
|
+
expect(error.rawError).toBe(validError);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=quoteAPI.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoteAPI.test.js","sourceRoot":"","sources":["../../../../src/test/lifi/quoteAPI.test.ts"],"names":[],"mappings":";;AAAA,mDAAyF;AACzF,0BAA8B;AAE9B,mCAAoC;AACpC,6BAQe;AACf,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,MAAM,GAAG,IAAA,kBAAc,EAAC,wBAAoB,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG;QACf,CAAC,2BAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,iBAAa,CAAC,IAAI,CAAC;QAC1D,CAAC,2BAAiB,CAAC,sBAAsB,EAAE,EAAE,EAAE,iBAAa,CAAC,IAAI,CAAC;QAClE,CAAC,2BAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,iBAAa,CAAC,IAAI,CAAC;QACxD,CAAC,2BAAiB,CAAC,2BAA2B,EAAE,EAAE,EAAE,yBAAqB,CAAC,IAAI,CAAC;QAC/E;YACE,2BAAiB,CAAC,YAAY;YAC9B,CAAC,EAAE,IAAI,EAAE,uBAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAa,CAAC,cAAc,EAAE,CAAC;YACnF,gCAA4B,CAAC,IAAI;SAClC;QACD;YACE,2BAAiB,CAAC,YAAY;YAC9B,CAAC,EAAE,IAAI,EAAE,uBAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAa,CAAC,sBAAsB,EAAE,CAAC;YAC3F,gCAA4B,CAAC,IAAI;SAClC;QACD;YACE,2BAAiB,CAAC,YAAY;YAC9B,CAAC,EAAE,IAAI,EAAE,uBAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAa,CAAC,eAAe,EAAE,CAAC;YACpF,wBAAoB,CAAC,IAAI;SAC1B;QACD;YACE,2BAAiB,CAAC,YAAY;YAC9B,CAAC,EAAE,IAAI,EAAE,uBAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAa,CAAC,sBAAsB,EAAE,CAAC;YAC3F,8BAA0B,CAAC,IAAI;SAChC;KACF,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAmB;YACjC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAiB,CAAC,CAAC,GAAG,EAAE;YAC7C,MAAM,EAAE,MAAe;SACxB,CAAC;QAEF,MAAM,KAAK,GAAmB,IAAA,YAAQ,EAAC,GAAG,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,MAAM,UAAU,CAAC;YACnB,CAAC,EAAE,YAAY,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAoB,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const OneInchAPI_1 = require("../../parsers/OneInchAPI");
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const RandExp = require("randexp");
|
|
6
|
+
const __2 = require("../..");
|
|
7
|
+
describe('OneInchApproveAPI parser', () => {
|
|
8
|
+
const parser = (0, __2.getErrorParser)(__2.OneInchApproveErrorParser);
|
|
9
|
+
const errorMap = [
|
|
10
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INTERNAL_ERROR, __2.ThirdPartyError.name],
|
|
11
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INVALID_TOKEN_ADDRESS, __2.InternalError.name],
|
|
12
|
+
];
|
|
13
|
+
it('should not log anything to console', () => {
|
|
14
|
+
const logSpy = jest.spyOn(console, 'log');
|
|
15
|
+
(0, __1.getError)(() => {
|
|
16
|
+
return parser.wrap(() => {
|
|
17
|
+
throw __1.FAKE_ERROR;
|
|
18
|
+
}, null);
|
|
19
|
+
});
|
|
20
|
+
expect(logSpy).toHaveBeenCalledTimes(0);
|
|
21
|
+
});
|
|
22
|
+
it.each(errorMap)("should map '%s' => '%s'", (sourceError, liqError) => {
|
|
23
|
+
const validError = {
|
|
24
|
+
statusCode: 400,
|
|
25
|
+
error: 'Bad Request',
|
|
26
|
+
description: new RandExp(sourceError).gen(),
|
|
27
|
+
requestId: 'string',
|
|
28
|
+
meta: [
|
|
29
|
+
{
|
|
30
|
+
type: 'string',
|
|
31
|
+
value: 'string',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
name: 'NodeError',
|
|
35
|
+
};
|
|
36
|
+
const error = (0, __1.getError)(() => {
|
|
37
|
+
parser.wrap(() => {
|
|
38
|
+
throw validError;
|
|
39
|
+
}, null);
|
|
40
|
+
});
|
|
41
|
+
expect(error.name).toBe(liqError);
|
|
42
|
+
expect(error.source).toBe(__2.OneInchApproveErrorParser.errorSource);
|
|
43
|
+
expect(error.devMsg.data).toEqual({});
|
|
44
|
+
expect(error.rawError).toBe(validError);
|
|
45
|
+
});
|
|
46
|
+
const recordLevelErrorMap = [
|
|
47
|
+
['ValidationError', 1001],
|
|
48
|
+
['NotFoundError', 1006],
|
|
49
|
+
];
|
|
50
|
+
it.each(recordLevelErrorMap)("should map '%s' => '%s'", (errorName, errorCode) => {
|
|
51
|
+
const validError = {
|
|
52
|
+
code: +errorCode,
|
|
53
|
+
name: errorName,
|
|
54
|
+
};
|
|
55
|
+
const error = (0, __1.getError)(() => {
|
|
56
|
+
parser.wrap(() => {
|
|
57
|
+
throw validError;
|
|
58
|
+
}, null);
|
|
59
|
+
});
|
|
60
|
+
expect(error.name).toBe(__2.PairNotSupportedError.name);
|
|
61
|
+
expect(error.source).toBe(__2.OneInchApproveErrorParser.errorSource);
|
|
62
|
+
expect(error.devMsg.data).toEqual({});
|
|
63
|
+
expect(error.rawError).toBe(validError);
|
|
64
|
+
});
|
|
65
|
+
const wrongErrors = [
|
|
66
|
+
['error structure is incorrect', __1.FAKE_ERROR],
|
|
67
|
+
[
|
|
68
|
+
'name is not nodeError',
|
|
69
|
+
{
|
|
70
|
+
description: new RandExp(OneInchAPI_1.ONE_INCH_ERRORS.INSUFFICIENT_FUNDS).gen(),
|
|
71
|
+
name: 'NodeErrr',
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
'description is incorrect',
|
|
76
|
+
{
|
|
77
|
+
description: __1.FAKE_ERROR,
|
|
78
|
+
name: 'NodeError',
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
];
|
|
82
|
+
it.each(wrongErrors)('Should return unknown error when %s', (_test, error) => {
|
|
83
|
+
const liqError = (0, __1.getError)(() => {
|
|
84
|
+
parser.wrap(() => {
|
|
85
|
+
throw error;
|
|
86
|
+
}, null);
|
|
87
|
+
});
|
|
88
|
+
expect(liqError.name).toBe(__2.UnknownError.name);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=approveAPI.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approveAPI.test.js","sourceRoot":"","sources":["../../../../src/test/oneInch/approveAPI.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const OneInchAPI_1 = require("../../parsers/OneInchAPI");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const RandExp = require("randexp");
|
|
7
|
+
const __2 = require("../..");
|
|
8
|
+
describe('OneInchSwapAPI parser', () => {
|
|
9
|
+
const data = {
|
|
10
|
+
from: 'ETH',
|
|
11
|
+
to: 'USDT',
|
|
12
|
+
amount: '1900',
|
|
13
|
+
balance: '1000',
|
|
14
|
+
};
|
|
15
|
+
const parser = (0, __2.getErrorParser)(__2.OneInchSwapErrorParser);
|
|
16
|
+
const errorMap = [
|
|
17
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.CANNOT_ESTIMATE_1, __2.ThirdPartyError.name],
|
|
18
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.CANNOT_ESTIMATE_WITH_REASON, __2.ThirdPartyError.name],
|
|
19
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INSUFFICIENT_ALLOWANCE, __2.InternalError.name],
|
|
20
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INSUFFICIENT_FUNDS, __2.InsufficientFundsError.name],
|
|
21
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INSUFFICIENT_GAS_FEE, __2.InsufficientGasFeeError.name],
|
|
22
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INSUFFICIENT_LIQUIDITY, __2.InsufficientLiquidityError.name],
|
|
23
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INTERNAL_ERROR, __2.ThirdPartyError.name],
|
|
24
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INVALID_TOKEN_PAIR, __2.InternalError.name],
|
|
25
|
+
[OneInchAPI_1.ONE_INCH_ERRORS.INVALID_TOKEN_ADDRESS, __2.InternalError.name],
|
|
26
|
+
];
|
|
27
|
+
it('should not log anything to console', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
const logSpy = jest.spyOn(console, 'log');
|
|
29
|
+
(0, __1.getError)(() => {
|
|
30
|
+
return parser.wrap(() => {
|
|
31
|
+
throw __1.FAKE_ERROR;
|
|
32
|
+
}, data);
|
|
33
|
+
});
|
|
34
|
+
yield (0, __1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
return yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
throw __1.FAKE_ERROR;
|
|
37
|
+
}), data);
|
|
38
|
+
}));
|
|
39
|
+
expect(logSpy).toHaveBeenCalledTimes(0);
|
|
40
|
+
}));
|
|
41
|
+
it.each(errorMap)("should map '%s' => '%s'", (sourceError, liqError) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
+
const validError = {
|
|
43
|
+
statusCode: 400,
|
|
44
|
+
error: 'Bad Request',
|
|
45
|
+
description: new RandExp(sourceError).gen(),
|
|
46
|
+
requestId: 'string',
|
|
47
|
+
meta: [
|
|
48
|
+
{
|
|
49
|
+
type: 'string',
|
|
50
|
+
value: 'string',
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
name: 'NodeError',
|
|
54
|
+
};
|
|
55
|
+
const error = (0, __1.getError)(() => {
|
|
56
|
+
parser.wrap(() => {
|
|
57
|
+
throw validError;
|
|
58
|
+
}, data);
|
|
59
|
+
});
|
|
60
|
+
expect(error.name).toBe(liqError);
|
|
61
|
+
expect(error.source).toBe(__2.OneInchSwapErrorParser.errorSource);
|
|
62
|
+
expect(error.devMsg.data).toBe(data);
|
|
63
|
+
expect(error.rawError).toBe(validError);
|
|
64
|
+
const error1 = yield (0, __1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
throw validError;
|
|
67
|
+
}), data);
|
|
68
|
+
}));
|
|
69
|
+
expect(error1.name).toBe(liqError);
|
|
70
|
+
expect(error1.source).toBe(__2.OneInchSwapErrorParser.errorSource);
|
|
71
|
+
expect(error1.devMsg.data).toBe(data);
|
|
72
|
+
expect(error1.rawError).toBe(validError);
|
|
73
|
+
}));
|
|
74
|
+
const recordLevelErrorMap = [
|
|
75
|
+
['ValidationError', 1001],
|
|
76
|
+
['NotFoundError', 1006],
|
|
77
|
+
];
|
|
78
|
+
it.each(recordLevelErrorMap)("should map '%s' => '%s'", (errorName, errorCode) => {
|
|
79
|
+
const validError = {
|
|
80
|
+
code: +errorCode,
|
|
81
|
+
name: errorName,
|
|
82
|
+
};
|
|
83
|
+
const error = (0, __1.getError)(() => {
|
|
84
|
+
parser.wrap(() => {
|
|
85
|
+
throw validError;
|
|
86
|
+
}, data);
|
|
87
|
+
});
|
|
88
|
+
expect(error.name).toBe(__2.PairNotSupportedError.name);
|
|
89
|
+
expect(error.source).toBe(__2.OneInchSwapErrorParser.errorSource);
|
|
90
|
+
expect(error.devMsg.data).toEqual(data);
|
|
91
|
+
expect(error.rawError).toBe(validError);
|
|
92
|
+
});
|
|
93
|
+
const wrongErrors = [
|
|
94
|
+
['error structure is incorrect', __1.FAKE_ERROR],
|
|
95
|
+
[
|
|
96
|
+
'name is not nodeError',
|
|
97
|
+
{
|
|
98
|
+
description: new RandExp(OneInchAPI_1.ONE_INCH_ERRORS.INSUFFICIENT_FUNDS).gen(),
|
|
99
|
+
name: 'NodeErrr',
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
[
|
|
103
|
+
'description is incorrect',
|
|
104
|
+
{
|
|
105
|
+
description: __1.FAKE_ERROR,
|
|
106
|
+
name: 'NodeError',
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
];
|
|
110
|
+
it.each(wrongErrors)('Should return unknown error when %s', (_test, error) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
111
|
+
const liqError = (0, __1.getError)(() => {
|
|
112
|
+
parser.wrap(() => {
|
|
113
|
+
throw error;
|
|
114
|
+
}, data);
|
|
115
|
+
});
|
|
116
|
+
expect(liqError.name).toBe(__2.UnknownError.name);
|
|
117
|
+
const liqError1 = yield (0, __1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
118
|
+
yield parser.wrapAsync(() => {
|
|
119
|
+
throw error;
|
|
120
|
+
}, data);
|
|
121
|
+
}));
|
|
122
|
+
expect(liqError1.name).toBe(__2.UnknownError.name);
|
|
123
|
+
}));
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=swapAPI.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapAPI.test.js","sourceRoot":"","sources":["../../../../src/test/oneInch/swapAPI.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const Thorchain_1 = require("../parsers/Thorchain");
|
|
7
|
+
const errors_1 = require("@yaswap/errors");
|
|
8
|
+
describe('ThorchainAPI parser', () => {
|
|
9
|
+
const parser = (0, __1.getErrorParser)(__1.ThorchainAPIErrorParser);
|
|
10
|
+
const errorMap = [[Thorchain_1.THORCHAIN_ERRORS.NETWORK_ERROR, __1.ThirdPartyError.name]];
|
|
11
|
+
it('should not log anything to console', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
12
|
+
const logSpy = jest.spyOn(console, 'log');
|
|
13
|
+
(0, _1.getError)(() => {
|
|
14
|
+
return parser.wrap(() => {
|
|
15
|
+
throw _1.FAKE_ERROR;
|
|
16
|
+
}, {});
|
|
17
|
+
});
|
|
18
|
+
yield (0, _1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
return yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
throw _1.FAKE_ERROR;
|
|
21
|
+
}), {});
|
|
22
|
+
}));
|
|
23
|
+
expect(logSpy).toHaveBeenCalledTimes(0);
|
|
24
|
+
}));
|
|
25
|
+
it.each(errorMap)("should map '%s' => '%s'", (sourceError, liqError) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
const validError = {
|
|
27
|
+
message: sourceError,
|
|
28
|
+
name: errors_1.NodeError.prototype.name,
|
|
29
|
+
};
|
|
30
|
+
const error = (0, _1.getError)(() => {
|
|
31
|
+
parser.wrap(() => {
|
|
32
|
+
throw validError;
|
|
33
|
+
}, {});
|
|
34
|
+
});
|
|
35
|
+
expect(error.name).toBe(liqError);
|
|
36
|
+
expect(error.source).toBe(__1.ThorchainAPIErrorParser.errorSource);
|
|
37
|
+
expect(error.rawError).toBe(validError);
|
|
38
|
+
const error1 = yield (0, _1.getErrorAsync)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
yield parser.wrapAsync(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
throw validError;
|
|
41
|
+
}), {});
|
|
42
|
+
}));
|
|
43
|
+
expect(error1.name).toBe(liqError);
|
|
44
|
+
expect(error1.source).toBe(__1.ThorchainAPIErrorParser.errorSource);
|
|
45
|
+
expect(error1.rawError).toBe(validError);
|
|
46
|
+
}));
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=thorchainAPI.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thorchainAPI.test.js","sourceRoot":"","sources":["../../../src/test/thorchainAPI.test.ts"],"names":[],"mappings":";;;AAAA,wBAAwD;AAExD,0BAA8E;AAC9E,oDAAwD;AACxD,2CAA2C;AAE3C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,MAAM,GAAG,IAAA,kBAAc,EAAC,2BAAuB,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,CAAC,CAAC,4BAAgB,CAAC,aAAa,EAAE,mBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,EAAE,CAAC,oCAAoC,EAAE,GAAS,EAAE;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE1C,IAAA,WAAQ,EAAC,GAAG,EAAE;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,MAAM,aAAU,CAAC;YACnB,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,IAAA,gBAAa,EAAC,GAAS,EAAE;YAC7B,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,GAAS,EAAE;gBACvC,MAAM,aAAU,CAAC;YACnB,CAAC,CAAA,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAA,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,yBAAyB,EAAE,CAAO,WAAW,EAAE,QAAQ,EAAE,EAAE;QAC3E,MAAM,UAAU,GAAU;YACxB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,kBAAS,CAAC,SAAS,CAAC,IAAI;SAC/B,CAAC;QAEF,MAAM,KAAK,GAAmB,IAAA,WAAQ,EAAC,GAAG,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,MAAM,UAAU,CAAC;YACnB,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2BAAuB,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExC,MAAM,MAAM,GAAmB,MAAM,IAAA,gBAAa,EAAC,GAAS,EAAE;YAC5D,MAAM,MAAM,CAAC,SAAS,CAAC,GAAS,EAAE;gBAChC,MAAM,UAAU,CAAC;YACnB,CAAC,CAAA,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAA,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2BAAuB,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare enum ReportTargets {
|
|
2
|
+
Console = "Console",
|
|
3
|
+
Discord = "Discord"
|
|
4
|
+
}
|
|
5
|
+
declare type JSONArray = Array<JSONValue>;
|
|
6
|
+
declare type JSONValue = string | number | boolean | JSONObject | JSONArray;
|
|
7
|
+
export declare type JSONObject = {
|
|
8
|
+
[key: string]: JSONValue;
|
|
9
|
+
};
|
|
10
|
+
export declare type LiqualityErrorJSON = {
|
|
11
|
+
name: string;
|
|
12
|
+
source: string;
|
|
13
|
+
translationKey: string;
|
|
14
|
+
devMsg: {
|
|
15
|
+
desc: string;
|
|
16
|
+
data: JSONObject;
|
|
17
|
+
};
|
|
18
|
+
rawError: any;
|
|
19
|
+
data: JSONObject | {
|
|
20
|
+
errorId: string;
|
|
21
|
+
};
|
|
22
|
+
reported: boolean;
|
|
23
|
+
reportable: boolean;
|
|
24
|
+
stack: string;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportTargets = void 0;
|
|
4
|
+
var ReportTargets;
|
|
5
|
+
(function (ReportTargets) {
|
|
6
|
+
ReportTargets["Console"] = "Console";
|
|
7
|
+
ReportTargets["Discord"] = "Discord";
|
|
8
|
+
})(ReportTargets = exports.ReportTargets || (exports.ReportTargets = {}));
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAGA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InternalError } from '../LiqualityErrors';
|
|
2
|
+
import { LiqualityErrorJSON } from '../types';
|
|
3
|
+
export declare function isLiqualityErrorString(error: string): boolean;
|
|
4
|
+
export declare function liqualityErrorStringToJson(error: string): LiqualityErrorJSON;
|
|
5
|
+
export declare const LIQUALITY_ERROR_STRING_STARTER = "LIQUALITY_ERROR_FROM_ERROR_PARSER_PACKAGE";
|
|
6
|
+
export declare function createInternalError(customError: any): InternalError;
|
|
7
|
+
export declare function errorToLiqualityErrorString(error: any): string;
|
|
8
|
+
export declare function errorName(error: any): string;
|
|
9
|
+
export declare function is1001ValidationError(error: any): boolean;
|
|
10
|
+
export declare function is1006NotFoundError(error: any): boolean;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.is1006NotFoundError = exports.is1001ValidationError = exports.errorName = exports.errorToLiqualityErrorString = exports.createInternalError = exports.LIQUALITY_ERROR_STRING_STARTER = exports.liqualityErrorStringToJson = exports.isLiqualityErrorString = void 0;
|
|
4
|
+
const LiqualityErrors_1 = require("../LiqualityErrors");
|
|
5
|
+
const reporters_1 = require("../reporters");
|
|
6
|
+
function isLiqualityErrorString(error) {
|
|
7
|
+
return error.startsWith(exports.LIQUALITY_ERROR_STRING_STARTER);
|
|
8
|
+
}
|
|
9
|
+
exports.isLiqualityErrorString = isLiqualityErrorString;
|
|
10
|
+
function liqualityErrorStringToJson(error) {
|
|
11
|
+
return JSON.parse(error.replace(exports.LIQUALITY_ERROR_STRING_STARTER, ''));
|
|
12
|
+
}
|
|
13
|
+
exports.liqualityErrorStringToJson = liqualityErrorStringToJson;
|
|
14
|
+
exports.LIQUALITY_ERROR_STRING_STARTER = 'LIQUALITY_ERROR_FROM_ERROR_PARSER_PACKAGE';
|
|
15
|
+
function createInternalError(customError) {
|
|
16
|
+
const internalError = new LiqualityErrors_1.InternalError(customError);
|
|
17
|
+
(0, reporters_1.reportLiqualityError)(internalError);
|
|
18
|
+
return internalError;
|
|
19
|
+
}
|
|
20
|
+
exports.createInternalError = createInternalError;
|
|
21
|
+
function errorToLiqualityErrorString(error) {
|
|
22
|
+
if (error instanceof LiqualityErrors_1.LiqualityError)
|
|
23
|
+
return error.toString();
|
|
24
|
+
else if (error instanceof Error && isLiqualityErrorString(error.message))
|
|
25
|
+
return error.message;
|
|
26
|
+
else
|
|
27
|
+
return createInternalError(LiqualityErrors_1.CUSTOM_ERRORS.Unknown(error)).toString();
|
|
28
|
+
}
|
|
29
|
+
exports.errorToLiqualityErrorString = errorToLiqualityErrorString;
|
|
30
|
+
function errorName(error) {
|
|
31
|
+
if (error instanceof LiqualityErrors_1.LiqualityError)
|
|
32
|
+
return error.name;
|
|
33
|
+
else if (error instanceof Error && isLiqualityErrorString(error.message))
|
|
34
|
+
return liqualityErrorStringToJson(error.message).name;
|
|
35
|
+
else
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
exports.errorName = errorName;
|
|
39
|
+
function is1001ValidationError(error) {
|
|
40
|
+
return error.code === 1001 && error.name === 'ValidationError';
|
|
41
|
+
}
|
|
42
|
+
exports.is1001ValidationError = is1001ValidationError;
|
|
43
|
+
function is1006NotFoundError(error) {
|
|
44
|
+
return error.code === 1006 && error.name === 'NotFoundError';
|
|
45
|
+
}
|
|
46
|
+
exports.is1006NotFoundError = is1006NotFoundError;
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,wDAAkF;AAClF,4CAAoD;AAGpD,SAAgB,sBAAsB,CAAC,KAAa;IAClD,OAAO,KAAK,CAAC,UAAU,CAAC,sCAA8B,CAAC,CAAC;AAC1D,CAAC;AAFD,wDAEC;AAED,SAAgB,0BAA0B,CAAC,KAAa;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,sCAA8B,EAAE,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC;AAFD,gEAEC;AAEY,QAAA,8BAA8B,GAAG,2CAA2C,CAAC;AAE1F,SAAgB,mBAAmB,CAAC,WAAgB;IAClD,MAAM,aAAa,GAAG,IAAI,+BAAa,CAAC,WAAW,CAAC,CAAC;IACrD,IAAA,gCAAoB,EAAC,aAAa,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAJD,kDAIC;AAED,SAAgB,2BAA2B,CAAC,KAAU;IACpD,IAAI,KAAK,YAAY,gCAAc;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACxD,IAAI,KAAK,YAAY,KAAK,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;;QAC1F,OAAO,mBAAmB,CAAC,+BAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC3E,CAAC;AAJD,kEAIC;AAGD,SAAgB,SAAS,CAAC,KAAU;IAClC,IAAI,KAAK,YAAY,gCAAc;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;SAClD,IAAI,KAAK,YAAY,KAAK,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;QACtE,OAAO,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;;QACnD,OAAO,EAAE,CAAC;AACjB,CAAC;AALD,8BAKC;AAED,SAAgB,qBAAqB,CAAC,KAAU;IAC9C,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC;AACjE,CAAC;AAFD,sDAEC;AAED,SAAgB,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;AAC/D,CAAC;AAFD,kDAEC"}
|