genius-intents 0.1.4
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 +45 -0
- package/LICENSE +21 -0
- package/README.md +376 -0
- package/dist/src/index.d.ts +27 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +62 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/intents-protocols.d.ts +69 -0
- package/dist/src/intents-protocols.d.ts.map +1 -0
- package/dist/src/intents-protocols.js +371 -0
- package/dist/src/intents-protocols.js.map +1 -0
- package/dist/src/interfaces/intent-protocol.d.ts +21 -0
- package/dist/src/interfaces/intent-protocol.d.ts.map +1 -0
- package/dist/src/interfaces/intent-protocol.js +3 -0
- package/dist/src/interfaces/intent-protocol.js.map +1 -0
- package/dist/src/protocols/aftermath/aftermath.service.d.ts +28 -0
- package/dist/src/protocols/aftermath/aftermath.service.d.ts.map +1 -0
- package/dist/src/protocols/aftermath/aftermath.service.js +162 -0
- package/dist/src/protocols/aftermath/aftermath.service.js.map +1 -0
- package/dist/src/protocols/aftermath/aftermath.types.d.ts +100 -0
- package/dist/src/protocols/aftermath/aftermath.types.d.ts.map +1 -0
- package/dist/src/protocols/aftermath/aftermath.types.js +3 -0
- package/dist/src/protocols/aftermath/aftermath.types.js.map +1 -0
- package/dist/src/protocols/aftermath/index.d.ts +3 -0
- package/dist/src/protocols/aftermath/index.d.ts.map +1 -0
- package/dist/src/protocols/aftermath/index.js +7 -0
- package/dist/src/protocols/aftermath/index.js.map +1 -0
- package/dist/src/protocols/debridge/debridge.service.d.ts +157 -0
- package/dist/src/protocols/debridge/debridge.service.d.ts.map +1 -0
- package/dist/src/protocols/debridge/debridge.service.js +462 -0
- package/dist/src/protocols/debridge/debridge.service.js.map +1 -0
- package/dist/src/protocols/debridge/debridge.types.d.ts +82 -0
- package/dist/src/protocols/debridge/debridge.types.d.ts.map +1 -0
- package/dist/src/protocols/debridge/debridge.types.js +3 -0
- package/dist/src/protocols/debridge/debridge.types.js.map +1 -0
- package/dist/src/protocols/debridge/index.d.ts +3 -0
- package/dist/src/protocols/debridge/index.d.ts.map +1 -0
- package/dist/src/protocols/debridge/index.js +7 -0
- package/dist/src/protocols/debridge/index.js.map +1 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.service.d.ts +36 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.service.d.ts.map +1 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.service.js +312 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.service.js.map +1 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.types.d.ts +100 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.types.d.ts.map +1 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.types.js +3 -0
- package/dist/src/protocols/genius-bridge/genius-bridge.types.js.map +1 -0
- package/dist/src/protocols/genius-bridge/index.d.ts +3 -0
- package/dist/src/protocols/genius-bridge/index.d.ts.map +1 -0
- package/dist/src/protocols/genius-bridge/index.js +7 -0
- package/dist/src/protocols/genius-bridge/index.js.map +1 -0
- package/dist/src/protocols/jupiter/index.d.ts +3 -0
- package/dist/src/protocols/jupiter/index.d.ts.map +1 -0
- package/dist/src/protocols/jupiter/index.js +7 -0
- package/dist/src/protocols/jupiter/index.js.map +1 -0
- package/dist/src/protocols/jupiter/jupiter.service.d.ts +37 -0
- package/dist/src/protocols/jupiter/jupiter.service.d.ts.map +1 -0
- package/dist/src/protocols/jupiter/jupiter.service.js +188 -0
- package/dist/src/protocols/jupiter/jupiter.service.js.map +1 -0
- package/dist/src/protocols/jupiter/jupiter.types.d.ts +272 -0
- package/dist/src/protocols/jupiter/jupiter.types.d.ts.map +1 -0
- package/dist/src/protocols/jupiter/jupiter.types.js +3 -0
- package/dist/src/protocols/jupiter/jupiter.types.js.map +1 -0
- package/dist/src/protocols/kyberswap/index.d.ts +3 -0
- package/dist/src/protocols/kyberswap/index.d.ts.map +1 -0
- package/dist/src/protocols/kyberswap/index.js +7 -0
- package/dist/src/protocols/kyberswap/index.js.map +1 -0
- package/dist/src/protocols/kyberswap/kyberswap.service.d.ts +34 -0
- package/dist/src/protocols/kyberswap/kyberswap.service.d.ts.map +1 -0
- package/dist/src/protocols/kyberswap/kyberswap.service.js +218 -0
- package/dist/src/protocols/kyberswap/kyberswap.service.js.map +1 -0
- package/dist/src/protocols/kyberswap/kyberswap.types.d.ts +114 -0
- package/dist/src/protocols/kyberswap/kyberswap.types.d.ts.map +1 -0
- package/dist/src/protocols/kyberswap/kyberswap.types.js +3 -0
- package/dist/src/protocols/kyberswap/kyberswap.types.js.map +1 -0
- package/dist/src/protocols/odos/index.d.ts +3 -0
- package/dist/src/protocols/odos/index.d.ts.map +1 -0
- package/dist/src/protocols/odos/index.js +7 -0
- package/dist/src/protocols/odos/index.js.map +1 -0
- package/dist/src/protocols/odos/odos.service.d.ts +39 -0
- package/dist/src/protocols/odos/odos.service.d.ts.map +1 -0
- package/dist/src/protocols/odos/odos.service.js +207 -0
- package/dist/src/protocols/odos/odos.service.js.map +1 -0
- package/dist/src/protocols/odos/odos.types.d.ts +114 -0
- package/dist/src/protocols/odos/odos.types.d.ts.map +1 -0
- package/dist/src/protocols/odos/odos.types.js +3 -0
- package/dist/src/protocols/odos/odos.types.js.map +1 -0
- package/dist/src/protocols/okx/index.d.ts +3 -0
- package/dist/src/protocols/okx/index.d.ts.map +1 -0
- package/dist/src/protocols/okx/index.js +7 -0
- package/dist/src/protocols/okx/index.js.map +1 -0
- package/dist/src/protocols/okx/okx.service.d.ts +36 -0
- package/dist/src/protocols/okx/okx.service.d.ts.map +1 -0
- package/dist/src/protocols/okx/okx.service.js +281 -0
- package/dist/src/protocols/okx/okx.service.js.map +1 -0
- package/dist/src/protocols/okx/okx.types.d.ts +119 -0
- package/dist/src/protocols/okx/okx.types.d.ts.map +1 -0
- package/dist/src/protocols/okx/okx.types.js +4 -0
- package/dist/src/protocols/okx/okx.types.js.map +1 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.service.d.ts +1 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.service.d.ts.map +1 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.service.js +2 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.service.js.map +1 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.types.d.ts +1 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.types.d.ts.map +1 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.types.js +2 -0
- package/dist/src/protocols/okx-bridge/okx-bridge.types.js.map +1 -0
- package/dist/src/protocols/openocean/index.d.ts +3 -0
- package/dist/src/protocols/openocean/index.d.ts.map +1 -0
- package/dist/src/protocols/openocean/index.js +7 -0
- package/dist/src/protocols/openocean/index.js.map +1 -0
- package/dist/src/protocols/openocean/openocean.service.d.ts +29 -0
- package/dist/src/protocols/openocean/openocean.service.d.ts.map +1 -0
- package/dist/src/protocols/openocean/openocean.service.js +181 -0
- package/dist/src/protocols/openocean/openocean.service.js.map +1 -0
- package/dist/src/protocols/openocean/openocean.types.d.ts +68 -0
- package/dist/src/protocols/openocean/openocean.types.d.ts.map +1 -0
- package/dist/src/protocols/openocean/openocean.types.js +3 -0
- package/dist/src/protocols/openocean/openocean.types.js.map +1 -0
- package/dist/src/protocols/pumpfun/index.d.ts +3 -0
- package/dist/src/protocols/pumpfun/index.d.ts.map +1 -0
- package/dist/src/protocols/pumpfun/index.js +7 -0
- package/dist/src/protocols/pumpfun/index.js.map +1 -0
- package/dist/src/protocols/pumpfun/pumpfun.service.d.ts +45 -0
- package/dist/src/protocols/pumpfun/pumpfun.service.d.ts.map +1 -0
- package/dist/src/protocols/pumpfun/pumpfun.service.js +217 -0
- package/dist/src/protocols/pumpfun/pumpfun.service.js.map +1 -0
- package/dist/src/protocols/pumpfun/pumpfun.types.d.ts +14 -0
- package/dist/src/protocols/pumpfun/pumpfun.types.d.ts.map +1 -0
- package/dist/src/protocols/pumpfun/pumpfun.types.js +3 -0
- package/dist/src/protocols/pumpfun/pumpfun.types.js.map +1 -0
- package/dist/src/protocols/raydium/index.d.ts +3 -0
- package/dist/src/protocols/raydium/index.d.ts.map +1 -0
- package/dist/src/protocols/raydium/index.js +7 -0
- package/dist/src/protocols/raydium/index.js.map +1 -0
- package/dist/src/protocols/raydium/raydium-v2.service.d.ts +35 -0
- package/dist/src/protocols/raydium/raydium-v2.service.d.ts.map +1 -0
- package/dist/src/protocols/raydium/raydium-v2.service.js +301 -0
- package/dist/src/protocols/raydium/raydium-v2.service.js.map +1 -0
- package/dist/src/protocols/raydium/raydium-v2.types.d.ts +96 -0
- package/dist/src/protocols/raydium/raydium-v2.types.d.ts.map +1 -0
- package/dist/src/protocols/raydium/raydium-v2.types.js +3 -0
- package/dist/src/protocols/raydium/raydium-v2.types.js.map +1 -0
- package/dist/src/protocols/zeroX/index.d.ts +3 -0
- package/dist/src/protocols/zeroX/index.d.ts.map +1 -0
- package/dist/src/protocols/zeroX/index.js +7 -0
- package/dist/src/protocols/zeroX/index.js.map +1 -0
- package/dist/src/protocols/zeroX/zeroX.service.d.ts +37 -0
- package/dist/src/protocols/zeroX/zeroX.service.d.ts.map +1 -0
- package/dist/src/protocols/zeroX/zeroX.service.js +209 -0
- package/dist/src/protocols/zeroX/zeroX.service.js.map +1 -0
- package/dist/src/protocols/zeroX/zeroX.types.d.ts +120 -0
- package/dist/src/protocols/zeroX/zeroX.types.d.ts.map +1 -0
- package/dist/src/protocols/zeroX/zeroX.types.js +3 -0
- package/dist/src/protocols/zeroX/zeroX.types.js.map +1 -0
- package/dist/src/types/enums.d.ts +42 -0
- package/dist/src/types/enums.d.ts.map +1 -0
- package/dist/src/types/enums.js +49 -0
- package/dist/src/types/enums.js.map +1 -0
- package/dist/src/types/intents-protocols.d.ts +89 -0
- package/dist/src/types/intents-protocols.d.ts.map +1 -0
- package/dist/src/types/intents-protocols.js +3 -0
- package/dist/src/types/intents-protocols.js.map +1 -0
- package/dist/src/types/price-response.d.ts +26 -0
- package/dist/src/types/price-response.d.ts.map +1 -0
- package/dist/src/types/price-response.js +3 -0
- package/dist/src/types/price-response.js.map +1 -0
- package/dist/src/types/quote-response.d.ts +31 -0
- package/dist/src/types/quote-response.d.ts.map +1 -0
- package/dist/src/types/quote-response.js +3 -0
- package/dist/src/types/quote-response.js.map +1 -0
- package/dist/src/utils/address-validation.d.ts +9 -0
- package/dist/src/utils/address-validation.d.ts.map +1 -0
- package/dist/src/utils/address-validation.js +42 -0
- package/dist/src/utils/address-validation.js.map +1 -0
- package/dist/src/utils/address.d.ts +9 -0
- package/dist/src/utils/address.d.ts.map +1 -0
- package/dist/src/utils/address.js +74 -0
- package/dist/src/utils/address.js.map +1 -0
- package/dist/src/utils/base64-to-base58.d.ts +2 -0
- package/dist/src/utils/base64-to-base58.d.ts.map +1 -0
- package/dist/src/utils/base64-to-base58.js +22 -0
- package/dist/src/utils/base64-to-base58.js.map +1 -0
- package/dist/src/utils/chain-id-name.d.ts +3 -0
- package/dist/src/utils/chain-id-name.d.ts.map +1 -0
- package/dist/src/utils/chain-id-name.js +23 -0
- package/dist/src/utils/chain-id-name.js.map +1 -0
- package/dist/src/utils/check-vm.d.ts +8 -0
- package/dist/src/utils/check-vm.d.ts.map +1 -0
- package/dist/src/utils/check-vm.js +39 -0
- package/dist/src/utils/check-vm.js.map +1 -0
- package/dist/src/utils/constants.d.ts +7 -0
- package/dist/src/utils/constants.d.ts.map +1 -0
- package/dist/src/utils/constants.js +10 -0
- package/dist/src/utils/constants.js.map +1 -0
- package/dist/src/utils/create-error-message.d.ts +5 -0
- package/dist/src/utils/create-error-message.d.ts.map +1 -0
- package/dist/src/utils/create-error-message.js +42 -0
- package/dist/src/utils/create-error-message.js.map +1 -0
- package/dist/src/utils/fetch-spl-metadata.d.ts +4 -0
- package/dist/src/utils/fetch-spl-metadata.d.ts.map +1 -0
- package/dist/src/utils/fetch-spl-metadata.js +108 -0
- package/dist/src/utils/fetch-spl-metadata.js.map +1 -0
- package/dist/src/utils/is-native.d.ts +2 -0
- package/dist/src/utils/is-native.d.ts.map +1 -0
- package/dist/src/utils/is-native.js +23 -0
- package/dist/src/utils/is-native.js.map +1 -0
- package/dist/src/utils/logger.d.ts +56 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +108 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/throw-error.d.ts +3 -0
- package/dist/src/utils/throw-error.d.ts.map +1 -0
- package/dist/src/utils/throw-error.js +8 -0
- package/dist/src/utils/throw-error.js.map +1 -0
- package/dist/tests/core/intent-protocol-suite.test.d.ts +2 -0
- package/dist/tests/core/intent-protocol-suite.test.d.ts.map +1 -0
- package/dist/tests/core/intent-protocol-suite.test.js +485 -0
- package/dist/tests/core/intent-protocol-suite.test.js.map +1 -0
- package/dist/tests/core/intents-protocols.test.d.ts +2 -0
- package/dist/tests/core/intents-protocols.test.d.ts.map +1 -0
- package/dist/tests/core/intents-protocols.test.js +307 -0
- package/dist/tests/core/intents-protocols.test.js.map +1 -0
- package/dist/tests/core/protocol-test-runner.d.ts +62 -0
- package/dist/tests/core/protocol-test-runner.d.ts.map +1 -0
- package/dist/tests/core/protocol-test-runner.js +260 -0
- package/dist/tests/core/protocol-test-runner.js.map +1 -0
- package/dist/tests/core/setup.test.d.ts +1 -0
- package/dist/tests/core/setup.test.d.ts.map +1 -0
- package/dist/tests/core/setup.test.js +13 -0
- package/dist/tests/core/setup.test.js.map +1 -0
- package/dist/tests/fixtures/test-data.d.ts +84 -0
- package/dist/tests/fixtures/test-data.d.ts.map +1 -0
- package/dist/tests/fixtures/test-data.js +142 -0
- package/dist/tests/fixtures/test-data.js.map +1 -0
- package/dist/tests/integration/cross-chain.test.d.ts +2 -0
- package/dist/tests/integration/cross-chain.test.d.ts.map +1 -0
- package/dist/tests/integration/cross-chain.test.js +44 -0
- package/dist/tests/integration/cross-chain.test.js.map +1 -0
- package/dist/tests/protocols/simple-protocol.test.d.ts +2 -0
- package/dist/tests/protocols/simple-protocol.test.d.ts.map +1 -0
- package/dist/tests/protocols/simple-protocol.test.js +77 -0
- package/dist/tests/protocols/simple-protocol.test.js.map +1 -0
- package/dist/tests/setup.d.ts +24 -0
- package/dist/tests/setup.d.ts.map +1 -0
- package/dist/tests/setup.js +48 -0
- package/dist/tests/setup.js.map +1 -0
- package/dist/tests/utils/test-generator.d.ts +30 -0
- package/dist/tests/utils/test-generator.d.ts.map +1 -0
- package/dist/tests/utils/test-generator.js +153 -0
- package/dist/tests/utils/test-generator.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TestGenerator = void 0;
|
|
4
|
+
const enums_1 = require("../../src/types/enums");
|
|
5
|
+
class TestGenerator {
|
|
6
|
+
/**
|
|
7
|
+
* Generates a test file template for a new protocol
|
|
8
|
+
*/
|
|
9
|
+
static generateProtocolTest(template) {
|
|
10
|
+
const { protocolName, className, supportedChains, singleChain, multiChain, requiresApprovals = false, customTestCases = [], } = template;
|
|
11
|
+
return `import { ${className} } from '../../src/protocols/${protocolName.toLowerCase()}/${protocolName.toLowerCase()}.service';
|
|
12
|
+
import { ProtocolTestRunner } from '../core/protocol-test-runner';
|
|
13
|
+
import { PROTOCOL_EXPECTATIONS, TEST_TOKENS, TEST_WALLETS, createPriceParams, createQuoteParams } from '../fixtures/test-data';
|
|
14
|
+
import { ChainIdEnum, ProtocolEnum } from '../../src/types/enums';
|
|
15
|
+
import { mockAxiosResponse } from '../setup';
|
|
16
|
+
import axios from 'axios';
|
|
17
|
+
|
|
18
|
+
const mockedAxios = axios as jest.Mocked<typeof axios>;
|
|
19
|
+
|
|
20
|
+
describe('${protocolName} Protocol Tests', () => {
|
|
21
|
+
let ${protocolName.toLowerCase()}Service: ${className};
|
|
22
|
+
let testRunner: ProtocolTestRunner;
|
|
23
|
+
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
jest.clearAllMocks();
|
|
26
|
+
${protocolName.toLowerCase()}Service = new ${className}();
|
|
27
|
+
|
|
28
|
+
testRunner = new ProtocolTestRunner({
|
|
29
|
+
protocol: ${protocolName.toLowerCase()}Service,
|
|
30
|
+
expectedBehavior: {
|
|
31
|
+
supportedChains: [${supportedChains.map(chain => `ChainIdEnum.${enums_1.ChainIdEnum[chain]}`).join(', ')}],
|
|
32
|
+
singleChain: ${singleChain},
|
|
33
|
+
multiChain: ${multiChain},
|
|
34
|
+
requiresApprovals: ${requiresApprovals},
|
|
35
|
+
},
|
|
36
|
+
customTestParams: {
|
|
37
|
+
validPriceParams: createPriceParams({
|
|
38
|
+
networkIn: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
39
|
+
networkOut: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
40
|
+
// Add chain-specific token addresses
|
|
41
|
+
}),
|
|
42
|
+
validQuoteParams: createQuoteParams({
|
|
43
|
+
networkIn: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
44
|
+
networkOut: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
45
|
+
// Add chain-specific parameters
|
|
46
|
+
}),
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Run the standard protocol tests
|
|
52
|
+
testRunner.runAllTests();
|
|
53
|
+
|
|
54
|
+
// ${protocolName}-specific tests
|
|
55
|
+
describe('${protocolName}-Specific Functionality', () => {
|
|
56
|
+
beforeEach(() => {
|
|
57
|
+
// Mock successful API responses
|
|
58
|
+
mockedAxios.get.mockResolvedValue(mockAxiosResponse({
|
|
59
|
+
// Add protocol-specific mock response
|
|
60
|
+
}));
|
|
61
|
+
|
|
62
|
+
mockedAxios.post.mockResolvedValue(mockAxiosResponse({
|
|
63
|
+
// Add protocol-specific mock response
|
|
64
|
+
}));
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
${customTestCases
|
|
68
|
+
.map(testCase => `
|
|
69
|
+
test('${testCase}', async () => {
|
|
70
|
+
// Implement ${testCase} test
|
|
71
|
+
expect(true).toBe(true); // Placeholder
|
|
72
|
+
});`)
|
|
73
|
+
.join('')}
|
|
74
|
+
|
|
75
|
+
test('should handle protocol-specific configuration', () => {
|
|
76
|
+
const configuredService = new ${className}({
|
|
77
|
+
// Add protocol-specific configuration
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
expect(configuredService).toBeDefined();
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
describe('${protocolName} Error Handling', () => {
|
|
85
|
+
test('should handle API error responses', async () => {
|
|
86
|
+
mockedAxios.get.mockResolvedValue(mockAxiosResponse({
|
|
87
|
+
error: 'Protocol-specific error',
|
|
88
|
+
}));
|
|
89
|
+
|
|
90
|
+
const params = createPriceParams({
|
|
91
|
+
networkIn: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
92
|
+
networkOut: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
await expect(${protocolName.toLowerCase()}Service.fetchPrice(params)).rejects.toThrow();
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
test('should handle network timeouts', async () => {
|
|
99
|
+
mockedAxios.get.mockRejectedValue(new Error('Network timeout'));
|
|
100
|
+
|
|
101
|
+
const params = createPriceParams({
|
|
102
|
+
networkIn: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
103
|
+
networkOut: ${supportedChains.length > 0 ? `ChainIdEnum.${enums_1.ChainIdEnum[supportedChains[0]]}` : 'ChainIdEnum.ETHEREUM'},
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
await expect(${protocolName.toLowerCase()}Service.fetchPrice(params)).rejects.toThrow();
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});`;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Generates test expectations for protocol expectations fixture
|
|
113
|
+
*/
|
|
114
|
+
static generateProtocolExpectations(template) {
|
|
115
|
+
const { protocolName, supportedChains, singleChain, multiChain, requiresApprovals } = template;
|
|
116
|
+
return `[ProtocolEnum.${protocolName.toUpperCase()}]: {
|
|
117
|
+
supportedChains: [${supportedChains.map(chain => `ChainIdEnum.${enums_1.ChainIdEnum[chain]}`).join(', ')}],
|
|
118
|
+
singleChain: ${singleChain},
|
|
119
|
+
multiChain: ${multiChain},
|
|
120
|
+
requiresApprovals: ${requiresApprovals || false},
|
|
121
|
+
},`;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Analyzes a protocol implementation to suggest test templates
|
|
125
|
+
*/
|
|
126
|
+
static analyzeProtocol(protocol) {
|
|
127
|
+
return {
|
|
128
|
+
protocolName: protocol.protocol,
|
|
129
|
+
className: `${protocol.protocol.charAt(0).toUpperCase()}${protocol.protocol.slice(1)}Service`,
|
|
130
|
+
supportedChains: protocol.chains,
|
|
131
|
+
singleChain: protocol.singleChain,
|
|
132
|
+
multiChain: protocol.multiChain,
|
|
133
|
+
requiresApprovals: 'includeApprovals' in protocol ? Boolean(protocol.includeApprovals) : false,
|
|
134
|
+
customTestCases: [
|
|
135
|
+
'should handle typical swap scenario',
|
|
136
|
+
'should validate protocol-specific parameters',
|
|
137
|
+
'should handle protocol-specific errors',
|
|
138
|
+
],
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generates a complete test suite for all protocols
|
|
143
|
+
*/
|
|
144
|
+
static generateTestSuite(protocols) {
|
|
145
|
+
const testFiles = protocols.map(protocol => {
|
|
146
|
+
const template = this.analyzeProtocol(protocol);
|
|
147
|
+
return this.generateProtocolTest(template);
|
|
148
|
+
});
|
|
149
|
+
return testFiles.join('\n\n');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.TestGenerator = TestGenerator;
|
|
153
|
+
//# sourceMappingURL=test-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-generator.js","sourceRoot":"","sources":["../../../tests/utils/test-generator.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "genius-intents",
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "A unified SDK for interacting with intents-based protocols across multiple blockchains including Solana, Ethereum, and Sui",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Samuel Videau <samuel@videau.io>",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"type": "commonjs",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/**/*",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE",
|
|
14
|
+
"CHANGELOG.md"
|
|
15
|
+
],
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"require": "./dist/index.js",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"defi",
|
|
25
|
+
"trading",
|
|
26
|
+
"sdk",
|
|
27
|
+
"intents",
|
|
28
|
+
"jupiter",
|
|
29
|
+
"raydium",
|
|
30
|
+
"solana",
|
|
31
|
+
"ethereum",
|
|
32
|
+
"sui",
|
|
33
|
+
"blockchain",
|
|
34
|
+
"crypto",
|
|
35
|
+
"trading-sdk"
|
|
36
|
+
],
|
|
37
|
+
"homepage": "https://github.com/Genius-Foundation/genius-intents#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/Genius-Foundation/genius-intents/issues"
|
|
40
|
+
},
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "git+https://github.com/Genius-Foundation/genius-intents.git"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=18.0.0",
|
|
47
|
+
"npm": ">=8.0.0"
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build": "tsc",
|
|
51
|
+
"build:clean": "rm -rf dist && tsc",
|
|
52
|
+
"lint": "eslint \"src/**/*.ts\" --fix",
|
|
53
|
+
"lint:check": "eslint \"src/**/*.ts\"",
|
|
54
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
55
|
+
"format:check": "prettier --check \"src/**/*.ts\"",
|
|
56
|
+
"test": "jest",
|
|
57
|
+
"test:watch": "jest --watch",
|
|
58
|
+
"test:coverage": "jest --coverage",
|
|
59
|
+
"test:protocols": "jest tests/protocols",
|
|
60
|
+
"test:integration": "jest tests/integration",
|
|
61
|
+
"test:unit": "jest tests/core tests/utils",
|
|
62
|
+
"prepare": "npm run build:clean",
|
|
63
|
+
"prepublishOnly": "npm run lint:check && npm run format:check && npm run test && npm run build:clean",
|
|
64
|
+
"prepack": "npm run build:clean",
|
|
65
|
+
"release": "npm run prepare && npm publish",
|
|
66
|
+
"release:dry": "npm run prepare && npm publish --dry-run",
|
|
67
|
+
"version:patch": "npm version patch",
|
|
68
|
+
"version:minor": "npm version minor",
|
|
69
|
+
"version:major": "npm version major"
|
|
70
|
+
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@types/jest": "^29.5.14",
|
|
73
|
+
"@types/node": "^22.13.14",
|
|
74
|
+
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
|
75
|
+
"@typescript-eslint/parser": "^8.26.1",
|
|
76
|
+
"eslint": "^9.22.0",
|
|
77
|
+
"eslint-config-prettier": "^10.1.1",
|
|
78
|
+
"eslint-plugin-prettier": "^5.2.3",
|
|
79
|
+
"prettier": "^3.5.3",
|
|
80
|
+
"ts-jest": "^29.3.4",
|
|
81
|
+
"ts-node": "^10.9.2",
|
|
82
|
+
"tsx": "^4.19.3",
|
|
83
|
+
"typescript": "^5.8.2",
|
|
84
|
+
"typescript-eslint": "^8.26.1"
|
|
85
|
+
},
|
|
86
|
+
"dependencies": {
|
|
87
|
+
"@jup-ag/api": "^6.0.40",
|
|
88
|
+
"@metaplex-foundation/js": "^0.20.1",
|
|
89
|
+
"@mysten/sui": "^1.26.0",
|
|
90
|
+
"@raydium-io/raydium-sdk-v2": "^0.1.139-alpha",
|
|
91
|
+
"@solana/web3.js": "^1.98.0",
|
|
92
|
+
"axios": "^1.9.0",
|
|
93
|
+
"bs58": "^6.0.0",
|
|
94
|
+
"ethers": "^6.13.5",
|
|
95
|
+
"jest": "^29.7.0",
|
|
96
|
+
"pumpdotfun-sdk": "^1.4.2"
|
|
97
|
+
},
|
|
98
|
+
"publishConfig": {
|
|
99
|
+
"access": "public",
|
|
100
|
+
"registry": "https://registry.npmjs.org/"
|
|
101
|
+
}
|
|
102
|
+
}
|