@0xkoaj/sdk 0.0.1-beta.10 → 0.0.1-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/quotes/quote-sources/aerodrome-quote-source.js +87 -9
- package/dist/services/quotes/quote-sources/aerodrome-quote-source.js.map +1 -1
- package/dist/services/quotes/quote-sources/cow-swap-quote-source.d.ts +35 -0
- package/dist/services/quotes/quote-sources/cow-swap-quote-source.js +195 -0
- package/dist/services/quotes/quote-sources/cow-swap-quote-source.js.map +1 -0
- package/dist/services/quotes/source-registry.d.ts +3 -1
- package/dist/services/quotes/source-registry.js +2 -0
- package/dist/services/quotes/source-registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@ const AERODROME_METADATA = {
|
|
|
20
20
|
swapAndTransfer: true,
|
|
21
21
|
buyOrders: false, // Aerodrome router doesn't support exact output swaps
|
|
22
22
|
},
|
|
23
|
-
logoURI: 'ipfs://
|
|
23
|
+
logoURI: 'ipfs://bafybeiagbaf3a6j6ikcidr5fctbku6q6xtsdxneql22nfushis55tvkm5i', // Aerodrome logo
|
|
24
24
|
};
|
|
25
25
|
class AerodromeQuoteSource extends always_valid_source_1.AlwaysValidConfigAndContextSource {
|
|
26
26
|
getMetadata() {
|
|
@@ -154,13 +154,91 @@ class AerodromeQuoteSource extends always_valid_source_1.AlwaysValidConfigAndCon
|
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
exports.AerodromeQuoteSource = AerodromeQuoteSource;
|
|
157
|
-
// Aerodrome Router ABI (
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
157
|
+
// Aerodrome Router ABI (JSON format - required for tuple types with named parameters)
|
|
158
|
+
const ROUTER_ABI = [
|
|
159
|
+
{
|
|
160
|
+
inputs: [
|
|
161
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
162
|
+
{
|
|
163
|
+
name: 'routes',
|
|
164
|
+
type: 'tuple[]',
|
|
165
|
+
components: [
|
|
166
|
+
{ name: 'from', type: 'address' },
|
|
167
|
+
{ name: 'to', type: 'address' },
|
|
168
|
+
{ name: 'stable', type: 'bool' },
|
|
169
|
+
{ name: 'factory', type: 'address' },
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
name: 'getAmountsOut',
|
|
174
|
+
outputs: [{ name: 'amounts', type: 'uint256[]' }],
|
|
175
|
+
stateMutability: 'view',
|
|
176
|
+
type: 'function',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
inputs: [
|
|
180
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
181
|
+
{ name: 'amountOutMin', type: 'uint256' },
|
|
182
|
+
{
|
|
183
|
+
name: 'routes',
|
|
184
|
+
type: 'tuple[]',
|
|
185
|
+
components: [
|
|
186
|
+
{ name: 'from', type: 'address' },
|
|
187
|
+
{ name: 'to', type: 'address' },
|
|
188
|
+
{ name: 'stable', type: 'bool' },
|
|
189
|
+
{ name: 'factory', type: 'address' },
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
{ name: 'to', type: 'address' },
|
|
193
|
+
{ name: 'deadline', type: 'uint256' },
|
|
194
|
+
],
|
|
195
|
+
name: 'swapExactTokensForTokens',
|
|
196
|
+
outputs: [{ name: 'amounts', type: 'uint256[]' }],
|
|
197
|
+
stateMutability: 'nonpayable',
|
|
198
|
+
type: 'function',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
inputs: [
|
|
202
|
+
{ name: 'amountOutMin', type: 'uint256' },
|
|
203
|
+
{
|
|
204
|
+
name: 'routes',
|
|
205
|
+
type: 'tuple[]',
|
|
206
|
+
components: [
|
|
207
|
+
{ name: 'from', type: 'address' },
|
|
208
|
+
{ name: 'to', type: 'address' },
|
|
209
|
+
{ name: 'stable', type: 'bool' },
|
|
210
|
+
{ name: 'factory', type: 'address' },
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
{ name: 'to', type: 'address' },
|
|
214
|
+
{ name: 'deadline', type: 'uint256' },
|
|
215
|
+
],
|
|
216
|
+
name: 'swapExactETHForTokens',
|
|
217
|
+
outputs: [{ name: 'amounts', type: 'uint256[]' }],
|
|
218
|
+
stateMutability: 'payable',
|
|
219
|
+
type: 'function',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
inputs: [
|
|
223
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
224
|
+
{ name: 'amountOutMin', type: 'uint256' },
|
|
225
|
+
{
|
|
226
|
+
name: 'routes',
|
|
227
|
+
type: 'tuple[]',
|
|
228
|
+
components: [
|
|
229
|
+
{ name: 'from', type: 'address' },
|
|
230
|
+
{ name: 'to', type: 'address' },
|
|
231
|
+
{ name: 'stable', type: 'bool' },
|
|
232
|
+
{ name: 'factory', type: 'address' },
|
|
233
|
+
],
|
|
234
|
+
},
|
|
235
|
+
{ name: 'to', type: 'address' },
|
|
236
|
+
{ name: 'deadline', type: 'uint256' },
|
|
237
|
+
],
|
|
238
|
+
name: 'swapExactTokensForETH',
|
|
239
|
+
outputs: [{ name: 'amounts', type: 'uint256[]' }],
|
|
240
|
+
stateMutability: 'nonpayable',
|
|
241
|
+
type: 'function',
|
|
242
|
+
},
|
|
164
243
|
];
|
|
165
|
-
const ROUTER_ABI = (0, viem_1.parseAbi)(ROUTER_HUMAN_READABLE_ABI);
|
|
166
244
|
//# sourceMappingURL=aerodrome-quote-source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aerodrome-quote-source.js","sourceRoot":"","sources":["../../../../src/services/quotes/quote-sources/aerodrome-quote-source.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAEjC,iDAA8C;AAC9C,yCAA6D;AAE7D,mCAA6E;AAC7E,oEAA+E;AAC/E,+
|
|
1
|
+
{"version":3,"file":"aerodrome-quote-source.js","sourceRoot":"","sources":["../../../../src/services/quotes/quote-sources/aerodrome-quote-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { QuoteParams, QuoteSourceMetadata, SourceQuoteResponse, SourceQuoteTransaction, BuildTxParams } from './types';
|
|
2
|
+
import { AlwaysValidConfigAndContextSource } from './base/always-valid-source';
|
|
3
|
+
import { type Address as ViemAddress } from 'viem';
|
|
4
|
+
type CowSwapSupport = {
|
|
5
|
+
buyOrders: true;
|
|
6
|
+
swapAndTransfer: true;
|
|
7
|
+
};
|
|
8
|
+
type CowSwapConfig = {
|
|
9
|
+
appData?: string;
|
|
10
|
+
};
|
|
11
|
+
interface CowOrder {
|
|
12
|
+
sellToken: ViemAddress;
|
|
13
|
+
buyToken: ViemAddress;
|
|
14
|
+
receiver: ViemAddress;
|
|
15
|
+
sellAmount: string;
|
|
16
|
+
buyAmount: string;
|
|
17
|
+
validTo: number;
|
|
18
|
+
appData: string;
|
|
19
|
+
feeAmount: string;
|
|
20
|
+
kind: 'sell' | 'buy';
|
|
21
|
+
partiallyFillable: boolean;
|
|
22
|
+
sellTokenBalance: 'erc20' | 'internal' | 'external';
|
|
23
|
+
buyTokenBalance: 'erc20' | 'internal';
|
|
24
|
+
}
|
|
25
|
+
type CowSwapData = {
|
|
26
|
+
orderUid: string;
|
|
27
|
+
order: CowOrder;
|
|
28
|
+
validTo: number;
|
|
29
|
+
};
|
|
30
|
+
export declare class CowSwapQuoteSource extends AlwaysValidConfigAndContextSource<CowSwapSupport, CowSwapConfig, CowSwapData> {
|
|
31
|
+
getMetadata(): QuoteSourceMetadata<CowSwapSupport>;
|
|
32
|
+
quote({ components: { fetchService }, request: { chainId, sellToken, buyToken, order, config: { slippagePercentage, timeout, txValidFor }, accounts: { takeFrom, recipient }, }, config, }: QuoteParams<CowSwapSupport, CowSwapConfig>): Promise<SourceQuoteResponse<CowSwapData>>;
|
|
33
|
+
buildTx({ request: { customData } }: BuildTxParams<CowSwapConfig, CowSwapData>): Promise<SourceQuoteTransaction>;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CowSwapQuoteSource = void 0;
|
|
4
|
+
const _chains_1 = require("../../../chains");
|
|
5
|
+
const constants_1 = require("../../../shared/constants");
|
|
6
|
+
const utils_1 = require("../../../shared/utils");
|
|
7
|
+
const utils_2 = require("./utils");
|
|
8
|
+
const always_valid_source_1 = require("./base/always-valid-source");
|
|
9
|
+
const viem_1 = require("viem");
|
|
10
|
+
// Contract addresses (same on all supported chains)
|
|
11
|
+
const VAULT_RELAYER = '0xC92E8bdf79f0507f65a392b0ab4667716BFE0110';
|
|
12
|
+
const GPV2_SETTLEMENT = '0x9008D19f58AAbD9eD0D60971565AA8510560ab41';
|
|
13
|
+
// API endpoints by chainId
|
|
14
|
+
const API_ENDPOINTS = {
|
|
15
|
+
[_chains_1.Chains.ETHEREUM.chainId]: 'https://api.cow.fi/mainnet/api/v1',
|
|
16
|
+
[_chains_1.Chains.GNOSIS.chainId]: 'https://api.cow.fi/xdai/api/v1',
|
|
17
|
+
[_chains_1.Chains.ARBITRUM.chainId]: 'https://api.cow.fi/arbitrum_one/api/v1',
|
|
18
|
+
[_chains_1.Chains.BASE.chainId]: 'https://api.cow.fi/base/api/v1',
|
|
19
|
+
[_chains_1.Chains.ETHEREUM_SEPOLIA.chainId]: 'https://api.cow.fi/sepolia/api/v1',
|
|
20
|
+
};
|
|
21
|
+
// Default appData hash (empty metadata)
|
|
22
|
+
const DEFAULT_APP_DATA = '0x0000000000000000000000000000000000000000000000000000000000000000';
|
|
23
|
+
const COW_SWAP_METADATA = {
|
|
24
|
+
name: 'CoW Swap',
|
|
25
|
+
supports: {
|
|
26
|
+
chains: [
|
|
27
|
+
_chains_1.Chains.ETHEREUM.chainId,
|
|
28
|
+
_chains_1.Chains.GNOSIS.chainId,
|
|
29
|
+
_chains_1.Chains.ARBITRUM.chainId,
|
|
30
|
+
_chains_1.Chains.BASE.chainId,
|
|
31
|
+
_chains_1.Chains.ETHEREUM_SEPOLIA.chainId,
|
|
32
|
+
],
|
|
33
|
+
swapAndTransfer: true,
|
|
34
|
+
buyOrders: true,
|
|
35
|
+
},
|
|
36
|
+
logoURI: 'ipfs://bafkreih75uruzdjtculei5md434pvtbw66gkzwcjb53kjgj4gz7xicuw54',
|
|
37
|
+
};
|
|
38
|
+
class CowSwapQuoteSource extends always_valid_source_1.AlwaysValidConfigAndContextSource {
|
|
39
|
+
getMetadata() {
|
|
40
|
+
return COW_SWAP_METADATA;
|
|
41
|
+
}
|
|
42
|
+
async quote({ components: { fetchService }, request: { chainId, sellToken, buyToken, order, config: { slippagePercentage, timeout, txValidFor }, accounts: { takeFrom, recipient }, }, config, }) {
|
|
43
|
+
const evmChainId = chainId;
|
|
44
|
+
const apiEndpoint = API_ENDPOINTS[evmChainId];
|
|
45
|
+
if (!apiEndpoint) {
|
|
46
|
+
(0, utils_2.failed)(COW_SWAP_METADATA, chainId, sellToken, buyToken, `Unsupported chain: ${chainId}`);
|
|
47
|
+
}
|
|
48
|
+
// Map native tokens to wrapped versions
|
|
49
|
+
const chain = (0, _chains_1.getChainByKey)(chainId);
|
|
50
|
+
if (!chain) {
|
|
51
|
+
(0, utils_2.failed)(COW_SWAP_METADATA, chainId, sellToken, buyToken, `Unknown chain: ${chainId}`);
|
|
52
|
+
}
|
|
53
|
+
const sellTokenMapped = (0, utils_1.isSameAddress)(sellToken, constants_1.Addresses.NATIVE_TOKEN) ? chain.wToken : sellToken;
|
|
54
|
+
const buyTokenMapped = (0, utils_1.isSameAddress)(buyToken, constants_1.Addresses.NATIVE_TOKEN) ? chain.wToken : buyToken;
|
|
55
|
+
const recipientAddress = recipient ?? takeFrom;
|
|
56
|
+
const validTo = (0, utils_1.calculateDeadline)(txValidFor ?? '30m');
|
|
57
|
+
const appData = config?.appData ?? DEFAULT_APP_DATA;
|
|
58
|
+
// Build quote request
|
|
59
|
+
const quoteRequest = {
|
|
60
|
+
sellToken: sellTokenMapped,
|
|
61
|
+
buyToken: buyTokenMapped,
|
|
62
|
+
receiver: recipientAddress,
|
|
63
|
+
appData,
|
|
64
|
+
from: takeFrom,
|
|
65
|
+
priceQuality: 'optimal',
|
|
66
|
+
signingScheme: 'presign',
|
|
67
|
+
onchainOrder: false,
|
|
68
|
+
...(order.type === 'sell'
|
|
69
|
+
? { kind: 'sell', sellAmountBeforeFee: order.sellAmount.toString() }
|
|
70
|
+
: { kind: 'buy', buyAmountAfterFee: order.buyAmount.toString() }),
|
|
71
|
+
};
|
|
72
|
+
const response = await fetchService.fetch(`${apiEndpoint}/quote`, {
|
|
73
|
+
method: 'POST',
|
|
74
|
+
headers: { 'Content-Type': 'application/json' },
|
|
75
|
+
body: JSON.stringify(quoteRequest),
|
|
76
|
+
timeout,
|
|
77
|
+
});
|
|
78
|
+
if (!response.ok) {
|
|
79
|
+
const errorText = await response.text();
|
|
80
|
+
(0, utils_2.failed)(COW_SWAP_METADATA, chainId, sellToken, buyToken, errorText || `Failed with status ${response.status}`);
|
|
81
|
+
}
|
|
82
|
+
const quoteResponse = await response.json();
|
|
83
|
+
const cowOrder = quoteResponse.quote;
|
|
84
|
+
// Calculate orderUid (56 bytes: orderDigest + owner + validTo)
|
|
85
|
+
const orderDigest = computeOrderDigest(cowOrder, evmChainId);
|
|
86
|
+
const orderUid = computeOrderUid(orderDigest, takeFrom, cowOrder.validTo);
|
|
87
|
+
// Calculate amounts accounting for fee
|
|
88
|
+
const sellAmount = BigInt(cowOrder.sellAmount);
|
|
89
|
+
const buyAmount = BigInt(cowOrder.buyAmount);
|
|
90
|
+
const feeAmount = BigInt(cowOrder.feeAmount);
|
|
91
|
+
// For sell orders: sellAmount includes the fee deducted
|
|
92
|
+
// For buy orders: we need to sell enough to cover the buy + fee
|
|
93
|
+
const totalSellAmount = sellAmount + feeAmount;
|
|
94
|
+
const quote = {
|
|
95
|
+
sellAmount: totalSellAmount,
|
|
96
|
+
buyAmount,
|
|
97
|
+
estimatedGas: 100000n, // Pre-sign transaction is relatively cheap
|
|
98
|
+
allowanceTarget: (0, utils_2.calculateAllowanceTarget)(sellToken, VAULT_RELAYER),
|
|
99
|
+
customData: {
|
|
100
|
+
orderUid,
|
|
101
|
+
order: {
|
|
102
|
+
sellToken: cowOrder.sellToken,
|
|
103
|
+
buyToken: cowOrder.buyToken,
|
|
104
|
+
receiver: cowOrder.receiver,
|
|
105
|
+
sellAmount: cowOrder.sellAmount,
|
|
106
|
+
buyAmount: cowOrder.buyAmount,
|
|
107
|
+
validTo: cowOrder.validTo,
|
|
108
|
+
appData: cowOrder.appData,
|
|
109
|
+
feeAmount: cowOrder.feeAmount,
|
|
110
|
+
kind: cowOrder.kind,
|
|
111
|
+
partiallyFillable: cowOrder.partiallyFillable,
|
|
112
|
+
sellTokenBalance: cowOrder.sellTokenBalance,
|
|
113
|
+
buyTokenBalance: cowOrder.buyTokenBalance,
|
|
114
|
+
},
|
|
115
|
+
validTo: cowOrder.validTo,
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
return (0, utils_2.addQuoteSlippage)(quote, order.type, slippagePercentage);
|
|
119
|
+
}
|
|
120
|
+
async buildTx({ request: { customData } }) {
|
|
121
|
+
const { orderUid } = customData;
|
|
122
|
+
// Generate calldata for setPreSignature(orderUid, true)
|
|
123
|
+
const calldata = (0, viem_1.encodeFunctionData)({
|
|
124
|
+
abi: GPV2_SETTLEMENT_ABI,
|
|
125
|
+
functionName: 'setPreSignature',
|
|
126
|
+
args: [orderUid, true],
|
|
127
|
+
});
|
|
128
|
+
return {
|
|
129
|
+
to: GPV2_SETTLEMENT,
|
|
130
|
+
calldata,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.CowSwapQuoteSource = CowSwapQuoteSource;
|
|
135
|
+
// Compute the EIP-712 order digest
|
|
136
|
+
function computeOrderDigest(order, chainId) {
|
|
137
|
+
const ORDER_TYPE_HASH = (0, viem_1.keccak256)((0, viem_1.toHex)('Order(address sellToken,address buyToken,address receiver,uint256 sellAmount,uint256 buyAmount,uint32 validTo,bytes32 appData,uint256 feeAmount,string kind,bool partiallyFillable,string sellTokenBalance,string buyTokenBalance)'));
|
|
138
|
+
const DOMAIN_SEPARATOR = computeDomainSeparator(chainId);
|
|
139
|
+
// Hash the order struct
|
|
140
|
+
const orderStructHash = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([
|
|
141
|
+
{ type: 'bytes32' },
|
|
142
|
+
{ type: 'address' },
|
|
143
|
+
{ type: 'address' },
|
|
144
|
+
{ type: 'address' },
|
|
145
|
+
{ type: 'uint256' },
|
|
146
|
+
{ type: 'uint256' },
|
|
147
|
+
{ type: 'uint32' },
|
|
148
|
+
{ type: 'bytes32' },
|
|
149
|
+
{ type: 'uint256' },
|
|
150
|
+
{ type: 'bytes32' },
|
|
151
|
+
{ type: 'bool' },
|
|
152
|
+
{ type: 'bytes32' },
|
|
153
|
+
{ type: 'bytes32' },
|
|
154
|
+
], [
|
|
155
|
+
ORDER_TYPE_HASH,
|
|
156
|
+
order.sellToken,
|
|
157
|
+
order.buyToken,
|
|
158
|
+
order.receiver,
|
|
159
|
+
BigInt(order.sellAmount),
|
|
160
|
+
BigInt(order.buyAmount),
|
|
161
|
+
order.validTo,
|
|
162
|
+
order.appData,
|
|
163
|
+
BigInt(order.feeAmount),
|
|
164
|
+
(0, viem_1.keccak256)((0, viem_1.toHex)(order.kind)),
|
|
165
|
+
order.partiallyFillable,
|
|
166
|
+
(0, viem_1.keccak256)((0, viem_1.toHex)(order.sellTokenBalance)),
|
|
167
|
+
(0, viem_1.keccak256)((0, viem_1.toHex)(order.buyTokenBalance)),
|
|
168
|
+
]));
|
|
169
|
+
// EIP-712 typed data hash
|
|
170
|
+
return (0, viem_1.keccak256)((0, viem_1.concat)(['0x1901', DOMAIN_SEPARATOR, orderStructHash]));
|
|
171
|
+
}
|
|
172
|
+
// Compute the EIP-712 domain separator for GPv2Settlement
|
|
173
|
+
function computeDomainSeparator(chainId) {
|
|
174
|
+
const DOMAIN_TYPE_HASH = (0, viem_1.keccak256)((0, viem_1.toHex)('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'));
|
|
175
|
+
return (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([{ type: 'bytes32' }, { type: 'bytes32' }, { type: 'bytes32' }, { type: 'uint256' }, { type: 'address' }], [DOMAIN_TYPE_HASH, (0, viem_1.keccak256)((0, viem_1.toHex)('Gnosis Protocol')), (0, viem_1.keccak256)((0, viem_1.toHex)('v2')), BigInt(chainId), GPV2_SETTLEMENT]));
|
|
176
|
+
}
|
|
177
|
+
// Compute orderUid: 56 bytes = orderDigest (32) + owner (20) + validTo (4)
|
|
178
|
+
function computeOrderUid(orderDigest, owner, validTo) {
|
|
179
|
+
const validToHex = (0, viem_1.pad)((0, viem_1.toHex)(validTo), { size: 4 });
|
|
180
|
+
return (0, viem_1.concat)([orderDigest, owner, validToHex]);
|
|
181
|
+
}
|
|
182
|
+
// GPv2Settlement ABI (only setPreSignature function)
|
|
183
|
+
const GPV2_SETTLEMENT_ABI = [
|
|
184
|
+
{
|
|
185
|
+
inputs: [
|
|
186
|
+
{ name: 'orderUid', type: 'bytes' },
|
|
187
|
+
{ name: 'signed', type: 'bool' },
|
|
188
|
+
],
|
|
189
|
+
name: 'setPreSignature',
|
|
190
|
+
outputs: [],
|
|
191
|
+
stateMutability: 'nonpayable',
|
|
192
|
+
type: 'function',
|
|
193
|
+
},
|
|
194
|
+
];
|
|
195
|
+
//# sourceMappingURL=cow-swap-quote-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cow-swap-quote-source.js","sourceRoot":"","sources":["../../../../src/services/quotes/quote-sources/cow-swap-quote-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ import { SushiswapQuoteSource } from './quote-sources/sushiswap-quote-source';
|
|
|
27
27
|
import { NordsternQuoteSource } from './quote-sources/nordstern-quote-source';
|
|
28
28
|
import { RelayQuoteSource } from './quote-sources/relay-quote-source';
|
|
29
29
|
import { AerodromeQuoteSource } from './quote-sources/aerodrome-quote-source';
|
|
30
|
+
import { CowSwapQuoteSource } from './quote-sources/cow-swap-quote-source';
|
|
30
31
|
import { JupiterQuoteSource } from './quote-sources/jupiter-quote-source';
|
|
31
32
|
export declare const QUOTE_SOURCES: {
|
|
32
33
|
bebop: BebopQuoteSource;
|
|
@@ -55,9 +56,10 @@ export declare const QUOTE_SOURCES: {
|
|
|
55
56
|
nordstern: NordsternQuoteSource;
|
|
56
57
|
relay: RelayQuoteSource;
|
|
57
58
|
aerodrome: AerodromeQuoteSource;
|
|
59
|
+
'cow-swap': CowSwapQuoteSource;
|
|
58
60
|
jupiter: JupiterQuoteSource;
|
|
59
61
|
};
|
|
60
|
-
export declare const SOURCES_METADATA: Record<"0x" | "open-ocean" | "paraswap" | "1inch" | "fly-trade" | "bebop" | "xy-finance" | "uniswap" | "li-fi" | "kyberswap" | "odos" | "braindex" | "barter" | "rango" | "changelly" | "squid" | "portals-fi" | "enso" | "okx-dex" | "conveyor" | "dodo" | "swing" | "sushiswap" | "nordstern" | "relay" | "aerodrome" | "jupiter", SourceMetadata>;
|
|
62
|
+
export declare const SOURCES_METADATA: Record<"0x" | "open-ocean" | "paraswap" | "1inch" | "fly-trade" | "bebop" | "xy-finance" | "uniswap" | "li-fi" | "kyberswap" | "odos" | "braindex" | "barter" | "rango" | "changelly" | "squid" | "portals-fi" | "enso" | "okx-dex" | "conveyor" | "dodo" | "swing" | "sushiswap" | "nordstern" | "relay" | "aerodrome" | "cow-swap" | "jupiter", SourceMetadata>;
|
|
61
63
|
export type SourceWithConfigId = keyof LocalSourcesConfig;
|
|
62
64
|
export type SourceConfig = {
|
|
63
65
|
global?: GlobalQuoteSourceConfig;
|
|
@@ -27,6 +27,7 @@ const sushiswap_quote_source_1 = require("./quote-sources/sushiswap-quote-source
|
|
|
27
27
|
const nordstern_quote_source_1 = require("./quote-sources/nordstern-quote-source");
|
|
28
28
|
const relay_quote_source_1 = require("./quote-sources/relay-quote-source");
|
|
29
29
|
const aerodrome_quote_source_1 = require("./quote-sources/aerodrome-quote-source");
|
|
30
|
+
const cow_swap_quote_source_1 = require("./quote-sources/cow-swap-quote-source");
|
|
30
31
|
// Solana sources
|
|
31
32
|
const jupiter_quote_source_1 = require("./quote-sources/jupiter-quote-source");
|
|
32
33
|
exports.QUOTE_SOURCES = {
|
|
@@ -56,6 +57,7 @@ exports.QUOTE_SOURCES = {
|
|
|
56
57
|
nordstern: new nordstern_quote_source_1.NordsternQuoteSource(),
|
|
57
58
|
relay: new relay_quote_source_1.RelayQuoteSource(),
|
|
58
59
|
aerodrome: new aerodrome_quote_source_1.AerodromeQuoteSource(),
|
|
60
|
+
'cow-swap': new cow_swap_quote_source_1.CowSwapQuoteSource(),
|
|
59
61
|
// Solana sources
|
|
60
62
|
jupiter: new jupiter_quote_source_1.JupiterQuoteSource(),
|
|
61
63
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-registry.js","sourceRoot":"","sources":["../../../src/services/quotes/source-registry.ts"],"names":[],"mappings":";;;AAGA,yEAAoE;AACpE,iFAA4E;AAC5E,sEAAiE;AACjE,4EAAwE;AACxE,+EAA0E;AAC1E,qFAA+E;AAC/E,2EAAqE;AACrE,mFAA8E;AAC9E,2EAAsE;AACtE,mFAA8E;AAC9E,qFAA+E;AAC/E,+EAAyE;AACzE,2EAAsE;AACtE,qFAA+E;AAC/E,mFAA6E;AAC7E,2EAAsE;AACtE,iFAA4E;AAC5E,yEAAoE;AACpE,iFAA4E;AAC5E,6EAAwE;AACxE,yEAAuE;AACvE,2EAAsE;AACtE,mFAA8E;AAC9E,mFAA8E;AAC9E,2EAAsE;AACtE,mFAA8E;AAC9E,iBAAiB;AACjB,+EAA0E;AAE7D,QAAA,aAAa,GAAG;IAC3B,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,QAAQ,EAAE,IAAI,2CAAmB,EAAE;IACnC,YAAY,EAAE,IAAI,8CAAoB,EAAE;IACxC,IAAI,EAAE,IAAI,iCAAc,EAAE;IAC1B,OAAO,EAAE,IAAI,wCAAkB,EAAE;IACjC,OAAO,EAAE,IAAI,yCAAkB,EAAE;IACjC,YAAY,EAAE,IAAI,8CAAoB,EAAE;IACxC,OAAO,EAAE,IAAI,oCAAe,EAAE;IAC9B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,IAAI,EAAE,IAAI,mCAAe,EAAE;IAC3B,QAAQ,EAAE,IAAI,2CAAmB,EAAE;IACnC,MAAM,EAAE,IAAI,uCAAiB,EAAE;IAC/B,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,CAAC,WAAW,CAAC,EAAE,IAAI,4CAAmB,EAAE;IACxC,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,YAAY,EAAE,IAAI,8CAAoB,EAAE;IACxC,IAAI,EAAE,IAAI,mCAAe,EAAE;IAC3B,SAAS,EAAE,IAAI,wCAAiB,EAAE;IAClC,QAAQ,EAAE,IAAI,2CAAmB,EAAE;IACnC,IAAI,EAAE,IAAI,sCAAkB,EAAE;IAC9B,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,iBAAiB;IACjB,OAAO,EAAE,IAAI,yCAAkB,EAAE;CACgC,CAAC;AAEvD,QAAA,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAChD,MAAM,CAAC,OAAO,CAAC,qBAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"source-registry.js","sourceRoot":"","sources":["../../../src/services/quotes/source-registry.ts"],"names":[],"mappings":";;;AAGA,yEAAoE;AACpE,iFAA4E;AAC5E,sEAAiE;AACjE,4EAAwE;AACxE,+EAA0E;AAC1E,qFAA+E;AAC/E,2EAAqE;AACrE,mFAA8E;AAC9E,2EAAsE;AACtE,mFAA8E;AAC9E,qFAA+E;AAC/E,+EAAyE;AACzE,2EAAsE;AACtE,qFAA+E;AAC/E,mFAA6E;AAC7E,2EAAsE;AACtE,iFAA4E;AAC5E,yEAAoE;AACpE,iFAA4E;AAC5E,6EAAwE;AACxE,yEAAuE;AACvE,2EAAsE;AACtE,mFAA8E;AAC9E,mFAA8E;AAC9E,2EAAsE;AACtE,mFAA8E;AAC9E,iFAA2E;AAC3E,iBAAiB;AACjB,+EAA0E;AAE7D,QAAA,aAAa,GAAG;IAC3B,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,QAAQ,EAAE,IAAI,2CAAmB,EAAE;IACnC,YAAY,EAAE,IAAI,8CAAoB,EAAE;IACxC,IAAI,EAAE,IAAI,iCAAc,EAAE;IAC1B,OAAO,EAAE,IAAI,wCAAkB,EAAE;IACjC,OAAO,EAAE,IAAI,yCAAkB,EAAE;IACjC,YAAY,EAAE,IAAI,8CAAoB,EAAE;IACxC,OAAO,EAAE,IAAI,oCAAe,EAAE;IAC9B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,IAAI,EAAE,IAAI,mCAAe,EAAE;IAC3B,QAAQ,EAAE,IAAI,2CAAmB,EAAE;IACnC,MAAM,EAAE,IAAI,uCAAiB,EAAE;IAC/B,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,CAAC,WAAW,CAAC,EAAE,IAAI,4CAAmB,EAAE;IACxC,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,YAAY,EAAE,IAAI,8CAAoB,EAAE;IACxC,IAAI,EAAE,IAAI,mCAAe,EAAE;IAC3B,SAAS,EAAE,IAAI,wCAAiB,EAAE;IAClC,QAAQ,EAAE,IAAI,2CAAmB,EAAE;IACnC,IAAI,EAAE,IAAI,sCAAkB,EAAE;IAC9B,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,KAAK,EAAE,IAAI,qCAAgB,EAAE;IAC7B,SAAS,EAAE,IAAI,6CAAoB,EAAE;IACrC,UAAU,EAAE,IAAI,0CAAkB,EAAE;IACpC,iBAAiB;IACjB,OAAO,EAAE,IAAI,yCAAkB,EAAE;CACgC,CAAC;AAEvD,QAAA,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAChD,MAAM,CAAC,OAAO,CAAC,qBAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CACtC,CAAC"}
|