@cowprotocol/cow-sdk 6.3.2 → 7.0.0-beta.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/README.md +276 -192
- package/dist/CHANGELOG.md +24 -0
- package/dist/README.md +276 -192
- package/dist/index.d.mts +73 -0
- package/dist/index.d.ts +73 -11
- package/dist/index.js +86 -27
- package/dist/index.mjs +49 -0
- package/dist/package.json +71 -91
- package/package.json +71 -91
- package/LICENSE-APACHE +0 -201
- package/LICENSE-MIT +0 -21
- package/dist/COPYRIGHT.md +0 -13
- package/dist/bridging/BridgingSdk/BridgingSdk.d.ts +0 -87
- package/dist/bridging/BridgingSdk/findBridgeProviderFromHook.d.ts +0 -2
- package/dist/bridging/BridgingSdk/getBridgeSignedHook.d.ts +0 -8
- package/dist/bridging/BridgingSdk/getCrossChainOrder.d.ts +0 -16
- package/dist/bridging/BridgingSdk/getQuoteWithBridge.d.ts +0 -3
- package/dist/bridging/BridgingSdk/getQuoteWithoutBridge.d.ts +0 -7
- package/dist/bridging/BridgingSdk/mock/bridgeRequestMocks.d.ts +0 -21
- package/dist/bridging/BridgingSdk/types.d.ts +0 -43
- package/dist/bridging/const.d.ts +0 -6
- package/dist/bridging/errors.d.ts +0 -22
- package/dist/bridging/index.d.ts +0 -8
- package/dist/bridging/providers/across/AcrossApi.d.ts +0 -30
- package/dist/bridging/providers/across/AcrossBridgeProvider.d.ts +0 -44
- package/dist/bridging/providers/across/abi.d.ts +0 -154
- package/dist/bridging/providers/across/const/contracts.d.ts +0 -3
- package/dist/bridging/providers/across/const/interfaces.d.ts +0 -3
- package/dist/bridging/providers/across/const/misc.d.ts +0 -2
- package/dist/bridging/providers/across/const/tokens.d.ts +0 -11
- package/dist/bridging/providers/across/createAcrossDepositCall.d.ts +0 -9
- package/dist/bridging/providers/across/getDepositParams.d.ts +0 -4
- package/dist/bridging/providers/across/types.d.ts +0 -242
- package/dist/bridging/providers/across/util.d.ts +0 -43
- package/dist/bridging/providers/bungee/BungeeApi.d.ts +0 -68
- package/dist/bridging/providers/bungee/BungeeBridgeProvider.d.ts +0 -45
- package/dist/bridging/providers/bungee/abi.d.ts +0 -203
- package/dist/bridging/providers/bungee/const/contracts.d.ts +0 -4
- package/dist/bridging/providers/bungee/const/misc.d.ts +0 -8
- package/dist/bridging/providers/bungee/createBungeeDepositCall.d.ts +0 -7
- package/dist/bridging/providers/bungee/getBridgingStatusFromEvents.d.ts +0 -3
- package/dist/bridging/providers/bungee/types.d.ts +0 -268
- package/dist/bridging/providers/bungee/util.d.ts +0 -62
- package/dist/bridging/providers/mock/MockBridgeProvider.d.ts +0 -26
- package/dist/bridging/providers/utils/getGasLimitEstimationForHook.d.ts +0 -10
- package/dist/bridging/types.d.ts +0 -333
- package/dist/bridging/utils.d.ts +0 -9
- package/dist/chains/const/index.d.ts +0 -25
- package/dist/chains/const/path.d.ts +0 -1
- package/dist/chains/details/arbitrum.d.ts +0 -7
- package/dist/chains/details/avalanche.d.ts +0 -2
- package/dist/chains/details/base.d.ts +0 -7
- package/dist/chains/details/bnb.d.ts +0 -2
- package/dist/chains/details/gnosis.d.ts +0 -7
- package/dist/chains/details/index.d.ts +0 -10
- package/dist/chains/details/lens.d.ts +0 -2
- package/dist/chains/details/mainnet.d.ts +0 -7
- package/dist/chains/details/optimism.d.ts +0 -2
- package/dist/chains/details/polygon.d.ts +0 -2
- package/dist/chains/details/sepolia.d.ts +0 -7
- package/dist/chains/index.d.ts +0 -4
- package/dist/chains/types.d.ts +0 -133
- package/dist/chains/utils.d.ts +0 -19
- package/dist/common/consts/config.d.ts +0 -9
- package/dist/common/consts/contracts.d.ts +0 -45
- package/dist/common/consts/ipfs.d.ts +0 -2
- package/dist/common/consts/order.d.ts +0 -1
- package/dist/common/consts/path.d.ts +0 -1
- package/dist/common/consts/tokens.d.ts +0 -9
- package/dist/common/generated/CoWShed.d.ts +0 -219
- package/dist/common/generated/CoWShedFactory.d.ts +0 -191
- package/dist/common/generated/ComposableCoW.d.ts +0 -340
- package/dist/common/generated/EthFlow.d.ts +0 -117
- package/dist/common/generated/ExtensibleFallbackHandler.d.ts +0 -282
- package/dist/common/generated/GPv2Settlement.d.ts +0 -107
- package/dist/common/generated/TWAP.d.ts +0 -141
- package/dist/common/generated/common.d.ts +0 -21
- package/dist/common/generated/factories/CoWShedFactory__factory.d.ts +0 -250
- package/dist/common/generated/factories/CoWShed__factory.d.ts +0 -254
- package/dist/common/generated/factories/ComposableCoW__factory.d.ts +0 -475
- package/dist/common/generated/factories/EthFlow__factory.d.ts +0 -124
- package/dist/common/generated/factories/ExtensibleFallbackHandler__factory.d.ts +0 -389
- package/dist/common/generated/factories/GPv2Settlement__factory.d.ts +0 -81
- package/dist/common/generated/factories/TWAP__factory.d.ts +0 -260
- package/dist/common/generated/factories/index.d.ts +0 -7
- package/dist/common/generated/index.d.ts +0 -15
- package/dist/common/index.d.ts +0 -12
- package/dist/common/types/config.d.ts +0 -70
- package/dist/common/types/cow-error.d.ts +0 -4
- package/dist/common/types/ethereum.d.ts +0 -5
- package/dist/common/types/tokens.d.ts +0 -12
- package/dist/common/types/wallets.d.ts +0 -5
- package/dist/common/utils/common.d.ts +0 -1
- package/dist/common/utils/config.d.ts +0 -4
- package/dist/common/utils/log.d.ts +0 -2
- package/dist/common/utils/math.d.ts +0 -19
- package/dist/common/utils/order.d.ts +0 -4
- package/dist/common/utils/serialize.d.ts +0 -1
- package/dist/common/utils/wallet.d.ts +0 -3
- package/dist/composable/ConditionalOrder.d.ts +0 -206
- package/dist/composable/ConditionalOrderFactory.d.ts +0 -19
- package/dist/composable/Multiplexer.d.ts +0 -174
- package/dist/composable/contracts.d.ts +0 -6
- package/dist/composable/generated/ComposableCoW.d.ts +0 -340
- package/dist/composable/generated/ExtensibleFallbackHandler.d.ts +0 -282
- package/dist/composable/generated/TWAP.d.ts +0 -141
- package/dist/composable/generated/common.d.ts +0 -21
- package/dist/composable/generated/factories/ComposableCoW__factory.d.ts +0 -475
- package/dist/composable/generated/factories/ExtensibleFallbackHandler__factory.d.ts +0 -389
- package/dist/composable/generated/factories/TWAP__factory.d.ts +0 -260
- package/dist/composable/generated/factories/index.d.ts +0 -3
- package/dist/composable/generated/index.d.ts +0 -7
- package/dist/composable/index.d.ts +0 -6
- package/dist/composable/orderTypes/Twap.d.ts +0 -242
- package/dist/composable/orderTypes/index.d.ts +0 -3
- package/dist/composable/orderTypes/test/TestConditionalOrder.d.ts +0 -25
- package/dist/composable/types.d.ts +0 -133
- package/dist/composable/utils.d.ts +0 -37
- package/dist/cow-shed/CowShedSdk.d.ts +0 -74
- package/dist/cow-shed/contracts/CoWShedHooks.d.ts +0 -46
- package/dist/cow-shed/contracts/utils.d.ts +0 -4
- package/dist/cow-shed/index.d.ts +0 -3
- package/dist/cow-shed/types.d.ts +0 -17
- package/dist/docs/architecture.md +0 -353
- package/dist/examples/cra/README.md +0 -21
- package/dist/hooks/utils.d.ts +0 -3
- package/dist/index-ba4aa036.js +0 -29
- package/dist/index-ba4aa036.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.modern.mjs +0 -2
- package/dist/index.modern.mjs.map +0 -1
- package/dist/index.module.js +0 -29
- package/dist/index.module.js.map +0 -1
- package/dist/order-book/api.d.ts +0 -235
- package/dist/order-book/generated/index.d.ts +0 -55
- package/dist/order-book/generated/models/Address.d.ts +0 -4
- package/dist/order-book/generated/models/AppData.d.ts +0 -7
- package/dist/order-book/generated/models/AppDataHash.d.ts +0 -6
- package/dist/order-book/generated/models/AppDataObject.d.ts +0 -7
- package/dist/order-book/generated/models/Auction.d.ts +0 -30
- package/dist/order-book/generated/models/AuctionOrder.d.ts +0 -92
- package/dist/order-book/generated/models/AuctionPrices.d.ts +0 -6
- package/dist/order-book/generated/models/BigUint.d.ts +0 -4
- package/dist/order-book/generated/models/BuyTokenDestination.d.ts +0 -7
- package/dist/order-book/generated/models/CallData.d.ts +0 -4
- package/dist/order-book/generated/models/CompetitionAuction.d.ts +0 -14
- package/dist/order-book/generated/models/CompetitionOrderStatus.d.ts +0 -29
- package/dist/order-book/generated/models/EcdsaSignature.d.ts +0 -4
- package/dist/order-book/generated/models/EcdsaSigningScheme.d.ts +0 -7
- package/dist/order-book/generated/models/EthflowData.d.ts +0 -20
- package/dist/order-book/generated/models/ExecutedAmounts.d.ts +0 -5
- package/dist/order-book/generated/models/ExecutedProtocolFee.d.ts +0 -8
- package/dist/order-book/generated/models/FeePolicy.d.ts +0 -7
- package/dist/order-book/generated/models/InteractionData.d.ts +0 -11
- package/dist/order-book/generated/models/NativePriceResponse.d.ts +0 -10
- package/dist/order-book/generated/models/OnchainOrderData.d.ts +0 -24
- package/dist/order-book/generated/models/Order.d.ts +0 -3
- package/dist/order-book/generated/models/OrderCancellation.d.ts +0 -14
- package/dist/order-book/generated/models/OrderCancellationError.d.ts +0 -15
- package/dist/order-book/generated/models/OrderCancellations.d.ts +0 -18
- package/dist/order-book/generated/models/OrderClass.d.ts +0 -8
- package/dist/order-book/generated/models/OrderCreation.d.ts +0 -80
- package/dist/order-book/generated/models/OrderKind.d.ts +0 -7
- package/dist/order-book/generated/models/OrderMetaData.d.ts +0 -100
- package/dist/order-book/generated/models/OrderParameters.d.ts +0 -53
- package/dist/order-book/generated/models/OrderPostError.d.ts +0 -35
- package/dist/order-book/generated/models/OrderQuoteRequest.d.ts +0 -58
- package/dist/order-book/generated/models/OrderQuoteResponse.d.ts +0 -27
- package/dist/order-book/generated/models/OrderQuoteSide.d.ts +0 -26
- package/dist/order-book/generated/models/OrderQuoteSideKindBuy.d.ts +0 -3
- package/dist/order-book/generated/models/OrderQuoteSideKindSell.d.ts +0 -3
- package/dist/order-book/generated/models/OrderQuoteValidity.d.ts +0 -14
- package/dist/order-book/generated/models/OrderStatus.d.ts +0 -10
- package/dist/order-book/generated/models/PreSignature.d.ts +0 -4
- package/dist/order-book/generated/models/PriceEstimationError.d.ts +0 -12
- package/dist/order-book/generated/models/PriceImprovement.d.ts +0 -12
- package/dist/order-book/generated/models/PriceQuality.d.ts +0 -16
- package/dist/order-book/generated/models/Quote.d.ts +0 -19
- package/dist/order-book/generated/models/SellTokenSource.d.ts +0 -8
- package/dist/order-book/generated/models/Signature.d.ts +0 -6
- package/dist/order-book/generated/models/SigningScheme.d.ts +0 -9
- package/dist/order-book/generated/models/SolverCompetitionResponse.d.ts +0 -30
- package/dist/order-book/generated/models/SolverSettlement.d.ts +0 -47
- package/dist/order-book/generated/models/Surplus.d.ts +0 -7
- package/dist/order-book/generated/models/TokenAmount.d.ts +0 -4
- package/dist/order-book/generated/models/TotalSurplus.d.ts +0 -10
- package/dist/order-book/generated/models/Trade.d.ts +0 -57
- package/dist/order-book/generated/models/TransactionHash.d.ts +0 -4
- package/dist/order-book/generated/models/UID.d.ts +0 -8
- package/dist/order-book/generated/models/Volume.d.ts +0 -6
- package/dist/order-book/index.d.ts +0 -5
- package/dist/order-book/mock.d.ts +0 -63
- package/dist/order-book/quoteAmountsAndCostsUtils.d.ts +0 -35
- package/dist/order-book/request.d.ts +0 -49
- package/dist/order-book/transformOrder.d.ts +0 -10
- package/dist/order-book/types.d.ts +0 -74
- package/dist/order-signing/index.d.ts +0 -2
- package/dist/order-signing/orderSigningUtils.d.ts +0 -97
- package/dist/order-signing/types.d.ts +0 -55
- package/dist/order-signing/utils.d.ts +0 -49
- package/dist/schemas/trading/LimitOrderAdvancedSettings.ts +0 -422
- package/dist/schemas/trading/LimitTradeParameters.ts +0 -229
- package/dist/schemas/trading/QuoteResultsSerialized.ts +0 -1151
- package/dist/schemas/trading/QuoterParameters.ts +0 -43
- package/dist/schemas/trading/SwapAdvancedSettings.ts +0 -708
- package/dist/schemas/trading/TradeParameters.ts +0 -217
- package/dist/src/bridging/PROVIDER_README.md +0 -796
- package/dist/src/bridging/README.md +0 -718
- package/dist/src/cow-shed/README.md +0 -60
- package/dist/src/trading/README.md +0 -544
- package/dist/src/weiroll/README.md +0 -58
- package/dist/subgraph/api.d.ts +0 -77
- package/dist/subgraph/graphql.d.ts +0 -3203
- package/dist/subgraph/index.d.ts +0 -1
- package/dist/subgraph/queries.d.ts +0 -14
- package/dist/test/getWallet.d.ts +0 -5
- package/dist/test/utils.d.ts +0 -1
- package/dist/trading/appDataUtils.d.ts +0 -5
- package/dist/trading/calculateUniqueOrderId.d.ts +0 -5
- package/dist/trading/consts.d.ts +0 -6
- package/dist/trading/getEthFlowTransaction.d.ts +0 -12
- package/dist/trading/getOrderToSign.d.ts +0 -11
- package/dist/trading/getOrderTypedData.d.ts +0 -4
- package/dist/trading/getPreSignTransaction.d.ts +0 -4
- package/dist/trading/getQuote.d.ts +0 -26
- package/dist/trading/index.d.ts +0 -21
- package/dist/trading/postCoWProtocolTrade.d.ts +0 -4
- package/dist/trading/postLimitOrder.d.ts +0 -3
- package/dist/trading/postSellNativeCurrencyOrder.d.ts +0 -4
- package/dist/trading/postSwapOrder.d.ts +0 -5
- package/dist/trading/suggestSlippageBps.d.ts +0 -13
- package/dist/trading/suggestSlippageFromFee.d.ts +0 -19
- package/dist/trading/suggestSlippageFromVolume.d.ts +0 -10
- package/dist/trading/tradingSdk.d.ts +0 -26
- package/dist/trading/types.d.ts +0 -221
- package/dist/trading/utils/getPartnerFeeBps.d.ts +0 -2
- package/dist/trading/utils/misc.d.ts +0 -27
- package/dist/trading/utils/slippage.d.ts +0 -16
- package/dist/utils-5a0554e7.js +0 -2
- package/dist/utils-5a0554e7.js.map +0 -1
- package/dist/utils-6b3b66e7.js +0 -2
- package/dist/utils-6b3b66e7.js.map +0 -1
- package/dist/utils-c9bb9a82.js +0 -2
- package/dist/utils-c9bb9a82.js.map +0 -1
- package/dist/utils.d.ts +0 -3
- package/dist/weiroll/index.d.ts +0 -23
package/dist/subgraph/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './api';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GraphQL query for the total number of tokens, orders, traders, settlements, volume, and fees.
|
|
3
|
-
*/
|
|
4
|
-
export declare const TOTALS_QUERY: string;
|
|
5
|
-
/**
|
|
6
|
-
* GraphQL query for the total volume over the last N days.
|
|
7
|
-
* @param days The number of days to query.
|
|
8
|
-
*/
|
|
9
|
-
export declare const LAST_DAYS_VOLUME_QUERY: string;
|
|
10
|
-
/**
|
|
11
|
-
* GraphQL query for the total volume over the last N hours.
|
|
12
|
-
* @param hours The number of hours to query.
|
|
13
|
-
*/
|
|
14
|
-
export declare const LAST_HOURS_VOLUME_QUERY: string;
|
package/dist/test/getWallet.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
|
-
import { SupportedChainId } from 'src/chains';
|
|
3
|
-
export declare function getRpcProvider(chainId: SupportedChainId): Promise<ethers.providers.JsonRpcProvider>;
|
|
4
|
-
export declare function getWallet(chainId: SupportedChainId): Promise<ethers.Wallet | null>;
|
|
5
|
-
export declare function getPk(): string | undefined;
|
package/dist/test/utils.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function expectToEqual(actual: unknown, expected: unknown): void;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { AppDataInfo, AppDataRootSchema, BuildAppDataParams } from './types';
|
|
2
|
-
import { AppDataParams, type LatestAppDataDocVersion } from '@cowprotocol/app-data';
|
|
3
|
-
export declare function buildAppData({ slippageBps, appCode, orderClass: orderClassName, partnerFee }: BuildAppDataParams, advancedParams?: AppDataParams): Promise<AppDataInfo>;
|
|
4
|
-
export declare function generateAppDataFromDoc(doc: AppDataRootSchema): Promise<Pick<AppDataInfo, 'fullAppData' | 'appDataKeccak256'>>;
|
|
5
|
-
export declare function mergeAppDataDoc(_doc: LatestAppDataDocVersion, appDataOverride: AppDataParams): Promise<AppDataInfo>;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { SupportedChainId } from '../chains';
|
|
2
|
-
import { CowEnv } from '../common';
|
|
3
|
-
import { UnsignedOrder } from '../order-signing';
|
|
4
|
-
import { EthFlowOrderExistsCallback } from './types';
|
|
5
|
-
export declare function calculateUniqueOrderId(chainId: SupportedChainId, order: UnsignedOrder, checkEthFlowOrderExists?: EthFlowOrderExistsCallback, env?: CowEnv): Promise<string>;
|
package/dist/trading/consts.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Signer } from '@ethersproject/abstract-signer';
|
|
2
|
-
import { SupportedChainId } from '../chains';
|
|
3
|
-
import { CowEnv } from '../common';
|
|
4
|
-
import { type EthFlow } from '../common/generated';
|
|
5
|
-
import type { UnsignedOrder } from '../order-signing';
|
|
6
|
-
import { LimitTradeParametersFromQuote, PostTradeAdditionalParams, TransactionParams } from './types';
|
|
7
|
-
export declare function getEthFlowTransaction(signer: Signer, appDataKeccak256: string, _params: LimitTradeParametersFromQuote, chainId: SupportedChainId, additionalParams?: PostTradeAdditionalParams): Promise<{
|
|
8
|
-
orderId: string;
|
|
9
|
-
transaction: TransactionParams;
|
|
10
|
-
orderToSign: UnsignedOrder;
|
|
11
|
-
}>;
|
|
12
|
-
export declare function getEthFlowContract(signer: Signer, chainId: SupportedChainId, env?: CowEnv): EthFlow;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { UnsignedOrder } from '../order-signing';
|
|
2
|
-
import { LimitTradeParameters } from './types';
|
|
3
|
-
import { SupportedChainId } from '../chains';
|
|
4
|
-
interface OrderToSignParams {
|
|
5
|
-
chainId: SupportedChainId;
|
|
6
|
-
isEthFlow: boolean;
|
|
7
|
-
from: string;
|
|
8
|
-
networkCostsAmount?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function getOrderToSign({ chainId, from, networkCostsAmount, isEthFlow }: OrderToSignParams, limitOrderParams: LimitTradeParameters, appDataKeccak256: string): UnsignedOrder;
|
|
11
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { SupportedChainId } from '../chains';
|
|
2
|
-
import type { Signer } from '@ethersproject/abstract-signer';
|
|
3
|
-
import { TransactionParams } from './types';
|
|
4
|
-
export declare function getPreSignTransaction(signer: Signer, chainId: SupportedChainId, account: string, orderId: string): Promise<TransactionParams>;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { AppDataInfo, QuoteResults, QuoterParameters, SwapAdvancedSettings, SwapParameters, TradeParameters } from './types';
|
|
2
|
-
import { Signer } from '@ethersproject/abstract-signer';
|
|
3
|
-
import { OrderBookApi, OrderQuoteResponse } from '../order-book';
|
|
4
|
-
export type QuoteResultsWithSigner = {
|
|
5
|
-
result: QuoteResults & {
|
|
6
|
-
signer: Signer;
|
|
7
|
-
};
|
|
8
|
-
orderBookApi: OrderBookApi;
|
|
9
|
-
};
|
|
10
|
-
interface GetQuoteRawResult {
|
|
11
|
-
isEthFlow: boolean;
|
|
12
|
-
quote: OrderQuoteResponse;
|
|
13
|
-
appDataInfo: AppDataInfo;
|
|
14
|
-
orderBookApi: OrderBookApi;
|
|
15
|
-
tradeParameters: TradeParameters;
|
|
16
|
-
slippageBps: number;
|
|
17
|
-
suggestedSlippageBps: number;
|
|
18
|
-
}
|
|
19
|
-
export declare function getQuoteRaw(_tradeParameters: TradeParameters, trader: QuoterParameters, advancedSettings?: SwapAdvancedSettings, _orderBookApi?: OrderBookApi): Promise<GetQuoteRawResult>;
|
|
20
|
-
export declare function getQuote(_tradeParameters: TradeParameters, trader: QuoterParameters, advancedSettings?: SwapAdvancedSettings, _orderBookApi?: OrderBookApi): Promise<{
|
|
21
|
-
result: QuoteResults;
|
|
22
|
-
orderBookApi: OrderBookApi;
|
|
23
|
-
}>;
|
|
24
|
-
export declare function getTrader(signer: Signer, swapParameters: SwapParameters): Promise<QuoterParameters>;
|
|
25
|
-
export declare function getQuoteWithSigner(swapParameters: SwapParameters, advancedSettings?: SwapAdvancedSettings, orderBookApi?: OrderBookApi): Promise<QuoteResultsWithSigner>;
|
|
26
|
-
export {};
|
package/dist/trading/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export * from './tradingSdk';
|
|
2
|
-
export * from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Main trading functions
|
|
5
|
-
*/
|
|
6
|
-
export { getEthFlowTransaction } from './getEthFlowTransaction';
|
|
7
|
-
export { getOrderToSign } from './getOrderToSign';
|
|
8
|
-
export { getPreSignTransaction } from './getPreSignTransaction';
|
|
9
|
-
export { getQuote, getQuoteWithSigner } from './getQuote';
|
|
10
|
-
export { postCoWProtocolTrade } from './postCoWProtocolTrade';
|
|
11
|
-
export { postLimitOrder } from './postLimitOrder';
|
|
12
|
-
export { postSellNativeCurrencyOrder } from './postSellNativeCurrencyOrder';
|
|
13
|
-
export { postSwapOrder, postSwapOrderFromQuote } from './postSwapOrder';
|
|
14
|
-
export { suggestSlippageBps } from './suggestSlippageBps';
|
|
15
|
-
/**
|
|
16
|
-
* Helpers
|
|
17
|
-
*/
|
|
18
|
-
export * from './appDataUtils';
|
|
19
|
-
export * from './calculateUniqueOrderId';
|
|
20
|
-
export { getPartnerFeeBps } from './utils/getPartnerFeeBps';
|
|
21
|
-
export { mapQuoteAmountsAndCosts, swapParamsToLimitOrderParams } from './utils/misc';
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { OrderBookApi } from '../order-book';
|
|
2
|
-
import type { Signer } from '@ethersproject/abstract-signer';
|
|
3
|
-
import { AppDataInfo, LimitTradeParameters, OrderPostingResult, PostTradeAdditionalParams } from './types';
|
|
4
|
-
export declare function postCoWProtocolTrade(orderBookApi: OrderBookApi, signer: Signer, appData: AppDataInfo, params: LimitTradeParameters, additionalParams?: PostTradeAdditionalParams): Promise<OrderPostingResult>;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { LimitOrderAdvancedSettings, LimitOrderParameters, OrderPostingResult } from './types';
|
|
2
|
-
import { OrderBookApi } from '../order-book';
|
|
3
|
-
export declare function postLimitOrder(params: LimitOrderParameters, advancedSettings?: LimitOrderAdvancedSettings, _orderBookApi?: OrderBookApi): Promise<OrderPostingResult>;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Signer } from 'ethers';
|
|
2
|
-
import { AppDataInfo, LimitTradeParametersFromQuote, OrderPostingResult, PostTradeAdditionalParams } from './types';
|
|
3
|
-
import { OrderBookApi } from '../order-book';
|
|
4
|
-
export declare function postSellNativeCurrencyOrder(orderBookApi: OrderBookApi, signer: Signer, appData: Pick<AppDataInfo, 'fullAppData' | 'appDataKeccak256'>, _params: LimitTradeParametersFromQuote, additionalParams?: PostTradeAdditionalParams): Promise<OrderPostingResult>;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { OrderPostingResult, SwapAdvancedSettings, SwapParameters } from './types';
|
|
2
|
-
import { QuoteResultsWithSigner } from './getQuote';
|
|
3
|
-
import { OrderBookApi } from '../order-book';
|
|
4
|
-
export declare function postSwapOrder(params: SwapParameters, advancedSettings?: SwapAdvancedSettings, orderBookApi?: OrderBookApi): Promise<OrderPostingResult>;
|
|
5
|
-
export declare function postSwapOrderFromQuote({ orderBookApi, result: { signer, appDataInfo: _appDataInfo, quoteResponse, tradeParameters }, }: QuoteResultsWithSigner, advancedSettings?: SwapAdvancedSettings): Promise<OrderPostingResult>;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { OrderQuoteResponse } from '../order-book';
|
|
2
|
-
import { QuoterParameters, SwapAdvancedSettings, TradeParameters } from './types';
|
|
3
|
-
export interface SuggestSlippageBps {
|
|
4
|
-
isEthFlow: boolean;
|
|
5
|
-
tradeParameters: Pick<TradeParameters, 'sellTokenDecimals' | 'buyTokenDecimals'>;
|
|
6
|
-
quote: OrderQuoteResponse;
|
|
7
|
-
trader: QuoterParameters;
|
|
8
|
-
advancedSettings?: SwapAdvancedSettings;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Return the slippage in BPS that would allow the fee to increase by the multiplying factor percent.
|
|
12
|
-
*/
|
|
13
|
-
export declare function suggestSlippageBps(params: SuggestSlippageBps): number;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export interface SuggestSlippageFromFeeParams {
|
|
2
|
-
/**
|
|
3
|
-
* Fee amount in the sell token returned by the quote
|
|
4
|
-
*/
|
|
5
|
-
feeAmount: bigint;
|
|
6
|
-
/**
|
|
7
|
-
* The factor to multiply the fee amount by to get the suggested slippage.
|
|
8
|
-
*
|
|
9
|
-
* For example, if the factor is 50% it would calculate which slippage would allow the fee to increase by 50% and still go through.
|
|
10
|
-
*/
|
|
11
|
-
multiplyingFactorPercent: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Return the absolute slippage in the sell token that would allow the order to execute, even if the fee increases by the multiplying factor percent.
|
|
15
|
-
*
|
|
16
|
-
* @returns The slippage amount in the same units as the fee (sell token amount)
|
|
17
|
-
* @throws Error if feeAmount or multiplyingFactorPercent is negative
|
|
18
|
-
*/
|
|
19
|
-
export declare function suggestSlippageFromFee(params: SuggestSlippageFromFeeParams): bigint;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface SuggestSlippageFromVolumeParams {
|
|
2
|
-
sellAmountBeforeNetworkCosts: bigint;
|
|
3
|
-
sellAmountAfterNetworkCosts: bigint;
|
|
4
|
-
isSell: boolean;
|
|
5
|
-
slippagePercent: number;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Return the absolute slippage in sell token for the traded amount
|
|
9
|
-
*/
|
|
10
|
-
export declare function suggestSlippageFromVolume(params: SuggestSlippageFromVolumeParams): bigint;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { LimitOrderAdvancedSettings, LimitTradeParameters, OrderPostingResult, QuoteAndPost, SwapAdvancedSettings, TradeParameters, TraderParameters } from './types';
|
|
2
|
-
import { QuoteResultsWithSigner } from './getQuote';
|
|
3
|
-
import { postSellNativeCurrencyOrder } from './postSellNativeCurrencyOrder';
|
|
4
|
-
import { getPreSignTransaction } from './getPreSignTransaction';
|
|
5
|
-
import { OrderBookApi } from '../order-book';
|
|
6
|
-
export type WithPartialTraderParams<T> = T & Partial<TraderParameters>;
|
|
7
|
-
export interface TradingSdkOptions {
|
|
8
|
-
enableLogging: boolean;
|
|
9
|
-
orderBookApi: OrderBookApi;
|
|
10
|
-
}
|
|
11
|
-
export declare class TradingSdk {
|
|
12
|
-
traderParams: Partial<TraderParameters>;
|
|
13
|
-
readonly options: Partial<TradingSdkOptions>;
|
|
14
|
-
constructor(traderParams?: Partial<TraderParameters>, options?: Partial<TradingSdkOptions>);
|
|
15
|
-
setTraderParams(params: Partial<TraderParameters>): this;
|
|
16
|
-
getQuote(params: WithPartialTraderParams<TradeParameters>, advancedSettings?: SwapAdvancedSettings): Promise<QuoteAndPost>;
|
|
17
|
-
getQuoteResults(params: WithPartialTraderParams<TradeParameters>, advancedSettings?: SwapAdvancedSettings): Promise<QuoteResultsWithSigner>;
|
|
18
|
-
postSwapOrder(params: WithPartialTraderParams<TradeParameters>, advancedSettings?: SwapAdvancedSettings): Promise<OrderPostingResult>;
|
|
19
|
-
postLimitOrder(params: WithPartialTraderParams<LimitTradeParameters>, advancedSettings?: LimitOrderAdvancedSettings): Promise<OrderPostingResult>;
|
|
20
|
-
postSellNativeCurrencyOrder(params: WithPartialTraderParams<TradeParameters>, advancedSettings?: SwapAdvancedSettings): Promise<ReturnType<typeof postSellNativeCurrencyOrder>>;
|
|
21
|
-
getPreSignTransaction(params: WithPartialTraderParams<{
|
|
22
|
-
orderId: string;
|
|
23
|
-
account: string;
|
|
24
|
-
}>): ReturnType<typeof getPreSignTransaction>;
|
|
25
|
-
private mergeParams;
|
|
26
|
-
}
|
package/dist/trading/types.d.ts
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import type { AppDataParams, latest, LatestAppDataDocVersion } from '@cowprotocol/app-data';
|
|
2
|
-
import { AppData, AppDataHash, OrderKind, OrderParameters, OrderQuoteRequest, OrderQuoteResponse, QuoteAmountsAndCosts, type Signature, SigningScheme, TokenAmount } from '../order-book';
|
|
3
|
-
import type { AccountAddress, CowEnv, SignerLike } from '../common';
|
|
4
|
-
import type { UnsignedOrder } from '../order-signing';
|
|
5
|
-
import type { SupportedChainId } from '../chains';
|
|
6
|
-
export declare const ORDER_PRIMARY_TYPE: "Order";
|
|
7
|
-
/**
|
|
8
|
-
* EIP-712 typed data domain.
|
|
9
|
-
*/
|
|
10
|
-
interface TypedDataDomain {
|
|
11
|
-
name: string;
|
|
12
|
-
version: string;
|
|
13
|
-
chainId: number;
|
|
14
|
-
verifyingContract: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* EIP-712 typed data field.
|
|
18
|
-
*/
|
|
19
|
-
interface TypedDataField {
|
|
20
|
-
name: string;
|
|
21
|
-
type: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* EIP-712 typed data for an order.
|
|
25
|
-
*/
|
|
26
|
-
export interface OrderTypedData {
|
|
27
|
-
domain: TypedDataDomain;
|
|
28
|
-
primaryType: typeof ORDER_PRIMARY_TYPE;
|
|
29
|
-
types: Record<string, TypedDataField[]>;
|
|
30
|
-
message: UnsignedOrder;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Minimal set of parameters to create a trade.
|
|
34
|
-
*/
|
|
35
|
-
export interface TradeBaseParameters {
|
|
36
|
-
kind: OrderKind;
|
|
37
|
-
owner?: AccountAddress;
|
|
38
|
-
sellToken: OrderParameters['sellToken'];
|
|
39
|
-
sellTokenDecimals: number;
|
|
40
|
-
buyToken: OrderParameters['buyToken'];
|
|
41
|
-
buyTokenDecimals: number;
|
|
42
|
-
amount: TokenAmount;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Optional parameters to create a trade.
|
|
46
|
-
*/
|
|
47
|
-
export interface TradeOptionalParameters {
|
|
48
|
-
env?: CowEnv;
|
|
49
|
-
partiallyFillable?: OrderParameters['partiallyFillable'];
|
|
50
|
-
/**
|
|
51
|
-
* Slippage in basis points.
|
|
52
|
-
* If not provided, it will use AUTO slippage, which would suggest a slippage based on the quote.
|
|
53
|
-
*/
|
|
54
|
-
slippageBps?: latest.SlippageBips;
|
|
55
|
-
receiver?: OrderParameters['receiver'];
|
|
56
|
-
validFor?: OrderParameters['validTo'];
|
|
57
|
-
partnerFee?: latest.PartnerFee;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Information about the trader.
|
|
61
|
-
*/
|
|
62
|
-
export interface TraderParameters {
|
|
63
|
-
chainId: SupportedChainId;
|
|
64
|
-
appCode: latest.AppCode;
|
|
65
|
-
signer: SignerLike;
|
|
66
|
-
env?: CowEnv;
|
|
67
|
-
}
|
|
68
|
-
export type QuoterParameters = Omit<TraderParameters, 'signer'> & {
|
|
69
|
-
account: AccountAddress;
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Trade type, assets, amounts, and optional parameters.
|
|
73
|
-
*/
|
|
74
|
-
export interface TradeParameters extends TradeBaseParameters, TradeOptionalParameters {
|
|
75
|
-
}
|
|
76
|
-
export interface SwapParameters extends TradeParameters, TraderParameters {
|
|
77
|
-
}
|
|
78
|
-
export interface LimitTradeParameters extends Omit<TradeParameters, 'amount'> {
|
|
79
|
-
sellAmount: OrderParameters['sellAmount'];
|
|
80
|
-
buyAmount: OrderParameters['buyAmount'];
|
|
81
|
-
/**
|
|
82
|
-
* Id of the quote to be used for the limit order.
|
|
83
|
-
*/
|
|
84
|
-
quoteId?: number;
|
|
85
|
-
validTo?: OrderParameters['validTo'];
|
|
86
|
-
}
|
|
87
|
-
export interface LimitTradeParametersFromQuote extends LimitTradeParameters {
|
|
88
|
-
quoteId: number;
|
|
89
|
-
}
|
|
90
|
-
export interface LimitOrderParameters extends TraderParameters, LimitTradeParameters {
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* When postSwapOrderFromQuote() is called, it will execute provided callback corresponding to signing order
|
|
94
|
-
*/
|
|
95
|
-
export interface SigningStepManager {
|
|
96
|
-
beforeBridgingSign?(): Promise<void> | void;
|
|
97
|
-
afterBridgingSign?(): Promise<void> | void;
|
|
98
|
-
beforeOrderSign?(): Promise<void> | void;
|
|
99
|
-
afterOrderSign?(): Promise<void> | void;
|
|
100
|
-
onBridgingSignError?(): void;
|
|
101
|
-
onOrderSignError?(): void;
|
|
102
|
-
}
|
|
103
|
-
export interface SwapAdvancedSettings {
|
|
104
|
-
quoteRequest?: Partial<Omit<OrderQuoteRequest, 'kind'> & {
|
|
105
|
-
validTo: number;
|
|
106
|
-
}>;
|
|
107
|
-
appData?: AppDataParams;
|
|
108
|
-
additionalParams?: PostTradeAdditionalParams;
|
|
109
|
-
quoteSigner?: SignerLike;
|
|
110
|
-
}
|
|
111
|
-
export interface LimitOrderAdvancedSettings {
|
|
112
|
-
appData?: AppDataParams;
|
|
113
|
-
additionalParams?: PostTradeAdditionalParams;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Quote information for the CoW Protocol order, including information about the trade, quote, order, "app-data", and more.
|
|
117
|
-
*
|
|
118
|
-
* This data is used to create a trade, sign an order, and post it to the order book.
|
|
119
|
-
*/
|
|
120
|
-
export interface QuoteResults {
|
|
121
|
-
/**
|
|
122
|
-
* Information about the trade, including the kind of order, the owner, the sell and buy tokens, and the amount.
|
|
123
|
-
*/
|
|
124
|
-
tradeParameters: TradeParameters;
|
|
125
|
-
/**
|
|
126
|
-
* The suggested slippage based on the quote.
|
|
127
|
-
*
|
|
128
|
-
*/
|
|
129
|
-
suggestedSlippageBps: number;
|
|
130
|
-
/**
|
|
131
|
-
* Details about costs and amounts, costs and fees of a quote.
|
|
132
|
-
*/
|
|
133
|
-
amountsAndCosts: QuoteAmountsAndCosts;
|
|
134
|
-
/**
|
|
135
|
-
* Information about the order to be signed.
|
|
136
|
-
*
|
|
137
|
-
* For signining, please use orderTypedData (EIP-712 typed data, which also includes the unsigned order)
|
|
138
|
-
*/
|
|
139
|
-
orderToSign: UnsignedOrder;
|
|
140
|
-
/**
|
|
141
|
-
* Information about the quote response from the order book API.
|
|
142
|
-
*/
|
|
143
|
-
quoteResponse: OrderQuoteResponse;
|
|
144
|
-
/**
|
|
145
|
-
* Information about the app-data, including the JSON document and the keccak256 hash of the full document.
|
|
146
|
-
*/
|
|
147
|
-
appDataInfo: AppDataInfo;
|
|
148
|
-
/**
|
|
149
|
-
* EIP-712 typed data for the order ready to be signed.
|
|
150
|
-
*/
|
|
151
|
-
orderTypedData: OrderTypedData;
|
|
152
|
-
}
|
|
153
|
-
export interface QuoteResultsSerialized extends Omit<QuoteResults, 'amountsAndCosts'> {
|
|
154
|
-
amountsAndCosts: QuoteAmountsAndCosts<string>;
|
|
155
|
-
}
|
|
156
|
-
export interface OrderPostingResult {
|
|
157
|
-
orderId: string;
|
|
158
|
-
txHash?: string;
|
|
159
|
-
signingScheme: SigningScheme;
|
|
160
|
-
signature: Signature;
|
|
161
|
-
orderToSign: UnsignedOrder;
|
|
162
|
-
}
|
|
163
|
-
export interface QuoteAndPost {
|
|
164
|
-
quoteResults: QuoteResults;
|
|
165
|
-
postSwapOrderFromQuote(advancedSettings?: SwapAdvancedSettings, signingStepManager?: SigningStepManager): Promise<OrderPostingResult>;
|
|
166
|
-
}
|
|
167
|
-
export type AppDataRootSchema = latest.AppDataRootSchema;
|
|
168
|
-
export interface BuildAppDataParams {
|
|
169
|
-
appCode: latest.AppCode;
|
|
170
|
-
slippageBps: latest.SlippageBips;
|
|
171
|
-
orderClass: latest.OrderClass['orderClass'];
|
|
172
|
-
partnerFee?: latest.PartnerFee;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Information about the app-data, including the JSON document and the keccak256 hash of the full document.
|
|
176
|
-
*
|
|
177
|
-
* See https://github.com/cowprotocol/app-data
|
|
178
|
-
*/
|
|
179
|
-
export interface AppDataInfo {
|
|
180
|
-
doc: LatestAppDataDocVersion;
|
|
181
|
-
fullAppData: AppData;
|
|
182
|
-
appDataKeccak256: AppDataHash;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* A standard Ethereum transaction object
|
|
186
|
-
*/
|
|
187
|
-
export interface TransactionParams {
|
|
188
|
-
data: string;
|
|
189
|
-
gasLimit: string;
|
|
190
|
-
to: string;
|
|
191
|
-
value: string;
|
|
192
|
-
}
|
|
193
|
-
export interface EthFlowOrderExistsCallback {
|
|
194
|
-
(orderId: string, orderDigest: string): Promise<boolean>;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Additional parameters for posting orders.
|
|
198
|
-
* In most of the cases you don't need to use them.
|
|
199
|
-
*/
|
|
200
|
-
export interface PostTradeAdditionalParams {
|
|
201
|
-
/**
|
|
202
|
-
* Selling native token orders are special, because they are created from smart-contract,
|
|
203
|
-
* and their validTo is always the same.
|
|
204
|
-
* Because of that, you might get the same orderId when trying to create an order with the same parameters
|
|
205
|
-
* The callback is needed to check if there is already an order with the same orderId
|
|
206
|
-
*
|
|
207
|
-
* @see https://github.com/cowprotocol/ethflowcontract/blob/main/src/libraries/EthFlowOrder.sol#L90
|
|
208
|
-
*/
|
|
209
|
-
checkEthFlowOrderExists?: EthFlowOrderExistsCallback;
|
|
210
|
-
/**
|
|
211
|
-
* Cost of executing the order onchain.
|
|
212
|
-
* The value is used in getQuoteAmountsAndCosts in order to calculate proper amounts
|
|
213
|
-
*/
|
|
214
|
-
networkCostsAmount?: string;
|
|
215
|
-
/**
|
|
216
|
-
* By default, is EIP712 for EOA wallets.
|
|
217
|
-
* You might need other types of signing, for example PRESIGN when sign order via Smart Contract wallets.
|
|
218
|
-
*/
|
|
219
|
-
signingScheme?: SigningScheme;
|
|
220
|
-
}
|
|
221
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { LimitTradeParametersFromQuote, TradeParameters } from '../types';
|
|
2
|
-
import { OrderQuoteResponse, QuoteAmountsAndCosts } from '../../order-book';
|
|
3
|
-
import { SupportedChainId } from '../../chains';
|
|
4
|
-
export declare function swapParamsToLimitOrderParams(params: TradeParameters, quoteResponse: OrderQuoteResponse): LimitTradeParametersFromQuote;
|
|
5
|
-
export declare function getIsEthFlowOrder(params: {
|
|
6
|
-
sellToken: string;
|
|
7
|
-
}): boolean;
|
|
8
|
-
/**
|
|
9
|
-
* Returns the gas value plus a margin for unexpected or variable gas costs (20%)
|
|
10
|
-
* @param value the gas value to pad
|
|
11
|
-
*/
|
|
12
|
-
export declare function calculateGasMargin(value: bigint): bigint;
|
|
13
|
-
export declare function mapQuoteAmountsAndCosts<T, R>(value: QuoteAmountsAndCosts<T>, mapper: (value: T) => R): QuoteAmountsAndCosts<R>;
|
|
14
|
-
/**
|
|
15
|
-
* Set sell token to the initial one
|
|
16
|
-
* Because for ETH-flow orders we do quote requests with wrapped token
|
|
17
|
-
*/
|
|
18
|
-
export declare function getTradeParametersAfterQuote({ quoteParameters, sellToken, }: {
|
|
19
|
-
quoteParameters: TradeParameters;
|
|
20
|
-
sellToken: string;
|
|
21
|
-
}): TradeParameters;
|
|
22
|
-
/**
|
|
23
|
-
* ETH-flow orders are special and need to be adjusted
|
|
24
|
-
* 1. Sell token should be the wrapped native currency
|
|
25
|
-
*/
|
|
26
|
-
export declare function adjustEthFlowOrderParams(chainId: SupportedChainId, params: TradeParameters): TradeParameters;
|
|
27
|
-
export declare function adjustEthFlowOrderParams(chainId: SupportedChainId, params: LimitTradeParametersFromQuote): LimitTradeParametersFromQuote;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { SupportedChainId } from '../../chains';
|
|
2
|
-
/**
|
|
3
|
-
* Get the slippage percentage for a given absolute slippage.
|
|
4
|
-
*
|
|
5
|
-
* Returns a percentage as a portion of 1 with 6 decimals of precision.
|
|
6
|
-
*
|
|
7
|
-
* @param params
|
|
8
|
-
* @returns
|
|
9
|
-
*/
|
|
10
|
-
export declare function getSlippagePercent(params: {
|
|
11
|
-
isSell: boolean;
|
|
12
|
-
sellAmountBeforeNetworkCosts: bigint;
|
|
13
|
-
sellAmountAfterNetworkCosts: bigint;
|
|
14
|
-
slippage: bigint;
|
|
15
|
-
}): number;
|
|
16
|
-
export declare function getDefaultSlippageBps(chainId: SupportedChainId, isEthFlow: boolean): number;
|
package/dist/utils-5a0554e7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{hashOrder as e,packOrderUidParams as t,IntChainIdTypedDataV4Signer as r,TypedDataVersionedSigner as n,signOrderCancellations as o,signOrderCancellation as i,signOrder as s,SigningScheme as c,domain as a}from"@cowprotocol/contracts";import{EcdsaSigningScheme as d,CowError as u,COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS as l}from"./index.module.js";import"cross-fetch/polyfill";import"limiter";import"exponential-backoff";import"ethers";import"@ethersproject/abstract-signer";import"@cowprotocol/app-data";import"ethers/lib/utils";import"deepmerge";import"@weiroll/weiroll.js";import"graphql-request";import"@openzeppelin/merkle-tree";const h=function(r,n,o){try{return Promise.resolve(k(r)).then(function(r){const i=e(r,n);return{orderId:t({...o,orderDigest:i,validTo:n.validTo}),orderDigest:i}})}catch(e){return Promise.reject(e)}},m=function(e,t,r){return f({orderUids:e,chainId:t},v,r)},g=function(e,t,r){return f({orderUid:e,chainId:t},w,r)},p=function(e,t,r){return f({order:e,chainId:t},P,r)},f=function(e,t,o,i="v4"){try{let c;function s(e){if(c)return e;const t=h?.data;return{signature:t?.toString()||"",signingScheme:a}}const a="eth_sign"===i?d.ETHSIGN:d.EIP712;let l,h=null;try{switch(i){case"default":case"v3":l=new n(o);break;case"int_v4":l=new r(o);break;default:l=o}}catch(g){throw console.error("Wallet not supported:",g),new u("Wallet not supported")}const m=function(r,n){try{var o=Promise.resolve(t({...e,signer:l,signingScheme:a})).then(function(e){h=e})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(r){if(void 0===(n=r).code&&void 0===n.message)throw console.error(r),r;var n;const s=[S,T].some(e=>[r.message,r.toString()].some(t=>e.test(t)));if(r.code!==y&&!s){if(E.test(r.message)){const r=f(e,t,o,"int_v4");return c=1,r}if(r.code===I){const r=f(e,t,o,"eth_sign");return c=1,r}if(_.test(r.message)){const r=f(e,t,o,"v3");return c=1,r}if(j.test(r.message)){const r=f(e,t,o,"eth_sign");return c=1,r}throw console.error(r),r}switch(i){case"v4":const n=f(e,t,o,"default");return c=1,n;case"default":const i=f(e,t,o,"v3");return c=1,i;case"v3":const s=f(e,t,o,"eth_sign");return c=1,s;default:throw r}});return Promise.resolve(m&&m.then?m.then(s):s(m))}catch(p){return Promise.reject(p)}},v=function(e){try{const{chainId:t,signer:r,signingScheme:n,orderUids:i}=e,s=k(t);return Promise.resolve(o(s,i,r,b[n]))}catch(e){return Promise.reject(e)}},w=function(e){try{const{chainId:t,signer:r,signingScheme:n,orderUid:o}=e,s=k(t);return Promise.resolve(i(s,o,r,b[n]))}catch(e){return Promise.reject(e)}},P=function(e){try{const{chainId:t,signer:r,order:n,signingScheme:o}=e,i=k(t);return Promise.resolve(s(i,n,r,b[o]))}catch(e){return Promise.reject(e)}},I=-32603,y=-32601,S=/Method not found/i,_=/eth_signTypedData_v4 does not exist/i,j=/eth_signTypedData_v3 does not exist/i,T=/RPC request failed/i,E=/provided chainid .* must match the active chainid/i,b={[d.EIP712]:c.EIP712,[d.ETHSIGN]:c.ETHSIGN};function k(e){const t=l[e];if(!t)throw new u("Unsupported network. Settlement contract is not deployed");return a(e,t)}export{h as generateOrderId,k as getDomain,p as signOrder,g as signOrderCancellation,m as signOrderCancellations};
|
|
2
|
-
//# sourceMappingURL=utils-5a0554e7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-5a0554e7.js","sources":["../src/order-signing/utils.ts"],"sourcesContent":["import type {\n Order as OrderFromContract,\n Signature,\n TypedDataDomain,\n EcdsaSigningScheme as EcdsaSigningSchemeContract,\n Order,\n OrderUidParams,\n} from '@cowprotocol/contracts'\nimport {\n domain as domainGp,\n EcdsaSignature,\n IntChainIdTypedDataV4Signer,\n SigningScheme,\n hashOrder,\n packOrderUidParams,\n signOrder as signOrderGp,\n signOrderCancellation as signOrderCancellationGp,\n signOrderCancellations as signOrderCancellationsGp,\n TypedDataVersionedSigner,\n} from '@cowprotocol/contracts'\nimport type { Signer } from '@ethersproject/abstract-signer'\nimport type { SigningResult, SignOrderParams, SignOrderCancellationParams, UnsignedOrder } from './types'\n\nimport { COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS } from '../common/consts/contracts'\nimport { CowError } from '../common'\nimport type { SupportedChainId } from '../chains'\nimport { EcdsaSigningScheme } from '../order-book'\nimport { SignOrderCancellationsParams } from './types'\n\n// For error codes, see:\n// - https://eth.wiki/json-rpc/json-rpc-error-codes-improvement-proposal\n// - https://www.jsonrpc.org/specification#error_object\nconst METAMASK_SIGNATURE_ERROR_CODE = -32603\nconst METHOD_NOT_FOUND_ERROR_CODE = -32601\n// Added the following because of 1Inch wallet who doesn't send the error code\n// So we will check the actual error text\nconst METHOD_NOT_FOUND_ERROR_MSG_REGEX = /Method not found/i\nconst V4_ERROR_MSG_REGEX = /eth_signTypedData_v4 does not exist/i\nconst V3_ERROR_MSG_REGEX = /eth_signTypedData_v3 does not exist/i\nconst RPC_REQUEST_FAILED_REGEX = /RPC request failed/i\nconst METAMASK_STRING_CHAINID_REGEX = /provided chainid .* must match the active chainid/i\n\nconst mapSigningSchema: Record<EcdsaSigningScheme, EcdsaSigningSchemeContract> = {\n [EcdsaSigningScheme.EIP712]: SigningScheme.EIP712,\n [EcdsaSigningScheme.ETHSIGN]: SigningScheme.ETHSIGN,\n}\n\ninterface ProviderRpcError extends Error {\n message: string\n code: number\n data?: unknown\n}\n\ntype PayloadParams =\n | Pick<SignOrderParams, 'order' & 'chainId'>\n | Pick<SignOrderCancellationParams, 'chainId' & 'orderId'>\n | Pick<SignOrderCancellationsParams, 'chainId' & 'orderUids'>\n\nfunction isProviderRpcError(error: unknown): error is ProviderRpcError {\n return (error as ProviderRpcError).code !== undefined || (error as ProviderRpcError).message !== undefined\n}\n\nasync function _signOrder(params: SignOrderParams): Promise<Signature> {\n const { chainId, signer, order, signingScheme } = params\n\n const domain = getDomain(chainId)\n\n return signOrderGp(domain, order as unknown as OrderFromContract, signer, mapSigningSchema[signingScheme])\n}\n\nasync function _signOrderCancellation(params: SignOrderCancellationParams): Promise<Signature> {\n const { chainId, signer, signingScheme, orderUid } = params\n\n const domain = getDomain(chainId)\n\n return signOrderCancellationGp(domain, orderUid, signer, mapSigningSchema[signingScheme])\n}\n\nasync function _signOrderCancellations(params: SignOrderCancellationsParams): Promise<Signature> {\n const { chainId, signer, signingScheme, orderUids } = params\n\n const domain = getDomain(chainId)\n\n return signOrderCancellationsGp(domain, orderUids, signer, mapSigningSchema[signingScheme])\n}\n\nasync function _signPayload(\n payload: PayloadParams,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signFn: (params: any) => Promise<Signature>,\n signer: Signer,\n signingMethod: 'default' | 'v4' | 'int_v4' | 'v3' | 'eth_sign' = 'v4',\n): Promise<SigningResult> {\n const signingScheme: EcdsaSigningScheme =\n signingMethod === 'eth_sign' ? EcdsaSigningScheme.ETHSIGN : EcdsaSigningScheme.EIP712\n let signature: Signature | null = null\n\n let _signer\n try {\n switch (signingMethod) {\n case 'default':\n case 'v3':\n _signer = new TypedDataVersionedSigner(signer)\n break\n case 'int_v4':\n _signer = new IntChainIdTypedDataV4Signer(signer)\n break\n default:\n _signer = signer\n }\n } catch (e) {\n console.error('Wallet not supported:', e)\n throw new CowError('Wallet not supported')\n }\n\n try {\n signature = (await signFn({ ...payload, signer: _signer, signingScheme })) as EcdsaSignature // Only ECDSA signing supported for now\n } catch (e: unknown) {\n if (!isProviderRpcError(e)) {\n // Some other error signing. Let it bubble up.\n console.error(e)\n throw e\n }\n\n const regexErrorCheck = [METHOD_NOT_FOUND_ERROR_MSG_REGEX, RPC_REQUEST_FAILED_REGEX].some((regex) =>\n // for example 1Inch error doesn't have e.message so we will check the output of toString()\n [(e as Error).message, (e as Error).toString()].some((msg) => regex.test(msg)),\n )\n\n if (e.code === METHOD_NOT_FOUND_ERROR_CODE || regexErrorCheck) {\n // Maybe the wallet returns the proper error code? We can only hope 🤞\n // OR it failed with a generic message, there's no error code set, and we also hope it'll work\n // with other methods...\n switch (signingMethod) {\n case 'v4':\n return _signPayload(payload, signFn, signer, 'default')\n case 'default':\n return _signPayload(payload, signFn, signer, 'v3')\n case 'v3':\n return _signPayload(payload, signFn, signer, 'eth_sign')\n default:\n throw e\n }\n } else if (METAMASK_STRING_CHAINID_REGEX.test(e.message)) {\n // Metamask now enforces chainId to be an integer\n return _signPayload(payload, signFn, signer, 'int_v4')\n } else if (e.code === METAMASK_SIGNATURE_ERROR_CODE) {\n // We tried to sign order the nice way.\n // That works fine for regular MM addresses. Does not work for Hardware wallets, though.\n // See https://github.com/MetaMask/metamask-extension/issues/10240#issuecomment-810552020\n // So, when that specific error occurs, we know this is a problem with MM + HW.\n // Then, we fallback to ETHSIGN.\n return _signPayload(payload, signFn, signer, 'eth_sign')\n } else if (V4_ERROR_MSG_REGEX.test(e.message)) {\n // Failed with `v4`, and the wallet does not set the proper error code\n return _signPayload(payload, signFn, signer, 'v3')\n } else if (V3_ERROR_MSG_REGEX.test(e.message)) {\n // Failed with `v3`, and the wallet does not set the proper error code\n return _signPayload(payload, signFn, signer, 'eth_sign')\n } else {\n // Some other error signing. Let it bubble up.\n console.error(e)\n throw e\n }\n }\n\n const data: unknown = signature?.data\n\n return { signature: data?.toString() || '', signingScheme }\n}\n\n/**\n * Returns the signature for the specified order with the signing scheme encoded\n * into the signature.\n * @param {UnsignedOrder} order The order to sign.\n * @param {SupportedChainId} chainId The chain Id\n * @param {Signer} signer The owner for the order used to sign.\n * @return {*} Encoded signature including signing scheme for the order.\n */\nexport async function signOrder(\n order: UnsignedOrder,\n chainId: SupportedChainId,\n signer: Signer,\n): Promise<SigningResult> {\n return _signPayload({ order, chainId }, _signOrder, signer)\n}\n\n/**\n * Returns the signature for the Order Cancellation with the signing scheme encoded\n * into the signature.\n * @param {string} orderUid The unique identifier of the order being cancelled.\n * @param {SupportedChainId} chainId The chain Id\n * @param {Signer} signer The owner for the order used to sign.\n * @return {*} Encoded signature including signing scheme for the order.\n */\nexport async function signOrderCancellation(\n orderUid: string,\n chainId: SupportedChainId,\n signer: Signer,\n): Promise<SigningResult> {\n return _signPayload({ orderUid, chainId }, _signOrderCancellation, signer)\n}\n\n/**\n * Returns the signature for the Order Cancellations with the signing scheme encoded\n * into the signature.\n *\n * @param {string[]} orderUids The unique identifiers of the orders being cancelled.\n * @param {SupportedChainId} chainId The CoW Protocol protocol `chainId` context that's being used.\n * @param {Signer} signer The owner that had placed the orders used to sign.\n * @returns {*} Encoded signature including signing scheme for the order.\n */\nexport async function signOrderCancellations(\n orderUids: string[],\n chainId: SupportedChainId,\n signer: Signer,\n): Promise<SigningResult> {\n return _signPayload({ orderUids, chainId }, _signOrderCancellations, signer)\n}\n\n/**\n * Returns the TypedDataDomain used for signing for the specified chainId.\n * @param {SupportedChainId} chainId The chain Id\n * @return {*} The TypedDataDomain for the specified chainId.\n * @throws {CowError} If the chainId is not supported.\n */\nexport function getDomain(chainId: SupportedChainId): TypedDataDomain {\n // Get settlement contract address\n const settlementContract = COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS[chainId]\n\n if (!settlementContract) {\n throw new CowError('Unsupported network. Settlement contract is not deployed')\n }\n\n return domainGp(chainId, settlementContract)\n}\n\n/**\n * Generate a deterministic order ID for the specified order.\n * @param {SupportedChainId} chainId The chain Id\n * @param {Order} order order to sign\n * @param {Pick<OrderUidParams, 'owner'>} params order unique identifier parameters.\n */\nexport async function generateOrderId(\n chainId: SupportedChainId,\n order: Order,\n params: Pick<OrderUidParams, 'owner'>,\n): Promise<{ orderId: string; orderDigest: string }> {\n const domain = await getDomain(chainId)\n const orderDigest = hashOrder(domain, order)\n // Generate the orderId from owner, orderDigest, and max validTo\n const orderId = packOrderUidParams({\n ...params,\n orderDigest,\n // Different validTo when signing because EthFlow contract expects it to be max for all orders\n validTo: order.validTo,\n })\n\n return { orderId, orderDigest }\n}\n"],"names":["generateOrderId","chainId","order","params","Promise","resolve","getDomain","then","domain","orderDigest","hashOrder","orderId","packOrderUidParams","validTo","e","reject","signOrderCancellations","orderUids","signer","_signPayload","_signOrderCancellations","signOrderCancellation","orderUid","_signOrderCancellation","signOrder","_signOrder","payload","signFn","signingMethod","_exit","_temp2","_result","data","signature","toString","signingScheme","EcdsaSigningScheme","ETHSIGN","EIP712","_signer","TypedDataVersionedSigner","IntChainIdTypedDataV4Signer","console","error","CowError","_temp","_signFn","_catch","undefined","code","message","regexErrorCheck","METHOD_NOT_FOUND_ERROR_MSG_REGEX","RPC_REQUEST_FAILED_REGEX","some","regex","msg","test","METHOD_NOT_FOUND_ERROR_CODE","METAMASK_STRING_CHAINID_REGEX","_signPayload5","METAMASK_SIGNATURE_ERROR_CODE","_signPayload6","V4_ERROR_MSG_REGEX","_signPayload7","V3_ERROR_MSG_REGEX","_signPayload8","_signPayload2","_signPayload3","_signPayload4","signOrderCancellationsGp","mapSigningSchema","signOrderCancellationGp","signOrderGp","SigningScheme","settlementContract","COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS","domainGp"],"mappings":"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"}
|
package/dist/utils-6b3b66e7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=require("@cowprotocol/contracts"),r=require("./index.js");require("cross-fetch/polyfill"),require("limiter"),require("exponential-backoff"),require("ethers"),require("@ethersproject/abstract-signer"),require("@cowprotocol/app-data"),require("ethers/lib/utils"),require("deepmerge"),require("@weiroll/weiroll.js"),require("graphql-request"),require("@openzeppelin/merkle-tree");const t=function(n,i,o,l="v4"){try{let f;function m(e){if(f)return e;const r=v?.data;return{signature:r?.toString()||"",signingScheme:p}}const p="eth_sign"===l?r.EcdsaSigningScheme.ETHSIGN:r.EcdsaSigningScheme.EIP712;let S,v=null;try{switch(l){case"default":case"v3":S=new e.TypedDataVersionedSigner(o);break;case"int_v4":S=new e.IntChainIdTypedDataV4Signer(o);break;default:S=o}}catch(P){throw console.error("Wallet not supported:",P),new r.CowError("Wallet not supported")}const w=function(e,r){try{var t=Promise.resolve(i({...n,signer:S,signingScheme:p})).then(function(e){v=e})}catch(e){return r(e)}return t&&t.then?t.then(void 0,r):t}(0,function(e){if(void 0===(r=e).code&&void 0===r.message)throw console.error(e),e;var r;const m=[a,h].some(r=>[e.message,e.toString()].some(e=>r.test(e)));if(e.code!==c&&!m){if(g.test(e.message)){const e=t(n,i,o,"int_v4");return f=1,e}if(e.code===s){const e=t(n,i,o,"eth_sign");return f=1,e}if(d.test(e.message)){const e=t(n,i,o,"v3");return f=1,e}if(u.test(e.message)){const e=t(n,i,o,"eth_sign");return f=1,e}throw console.error(e),e}switch(l){case"v4":const r=t(n,i,o,"default");return f=1,r;case"default":const s=t(n,i,o,"v3");return f=1,s;case"v3":const c=t(n,i,o,"eth_sign");return f=1,c;default:throw e}});return Promise.resolve(w&&w.then?w.then(m):m(w))}catch(q){return Promise.reject(q)}},n=function(r){try{const{chainId:t,signer:n,signingScheme:i,orderUids:o}=r,s=m(t);return Promise.resolve(e.signOrderCancellations(s,o,n,l[i]))}catch(e){return Promise.reject(e)}},i=function(r){try{const{chainId:t,signer:n,signingScheme:i,orderUid:o}=r,s=m(t);return Promise.resolve(e.signOrderCancellation(s,o,n,l[i]))}catch(e){return Promise.reject(e)}},o=function(r){try{const{chainId:t,signer:n,order:i,signingScheme:o}=r,s=m(t);return Promise.resolve(e.signOrder(s,i,n,l[o]))}catch(e){return Promise.reject(e)}},s=-32603,c=-32601,a=/Method not found/i,d=/eth_signTypedData_v4 does not exist/i,u=/eth_signTypedData_v3 does not exist/i,h=/RPC request failed/i,g=/provided chainid .* must match the active chainid/i,l={[r.EcdsaSigningScheme.EIP712]:e.SigningScheme.EIP712,[r.EcdsaSigningScheme.ETHSIGN]:e.SigningScheme.ETHSIGN};function m(t){const n=r.COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS[t];if(!n)throw new r.CowError("Unsupported network. Settlement contract is not deployed");return e.domain(t,n)}exports.generateOrderId=function(r,t,n){try{return Promise.resolve(m(r)).then(function(r){const i=e.hashOrder(r,t);return{orderId:e.packOrderUidParams({...n,orderDigest:i,validTo:t.validTo}),orderDigest:i}})}catch(e){return Promise.reject(e)}},exports.getDomain=m,exports.signOrder=function(e,r,n){return t({order:e,chainId:r},o,n)},exports.signOrderCancellation=function(e,r,n){return t({orderUid:e,chainId:r},i,n)},exports.signOrderCancellations=function(e,r,i){return t({orderUids:e,chainId:r},n,i)};
|
|
2
|
-
//# sourceMappingURL=utils-6b3b66e7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-6b3b66e7.js","sources":["../src/order-signing/utils.ts"],"sourcesContent":["import type {\n Order as OrderFromContract,\n Signature,\n TypedDataDomain,\n EcdsaSigningScheme as EcdsaSigningSchemeContract,\n Order,\n OrderUidParams,\n} from '@cowprotocol/contracts'\nimport {\n domain as domainGp,\n EcdsaSignature,\n IntChainIdTypedDataV4Signer,\n SigningScheme,\n hashOrder,\n packOrderUidParams,\n signOrder as signOrderGp,\n signOrderCancellation as signOrderCancellationGp,\n signOrderCancellations as signOrderCancellationsGp,\n TypedDataVersionedSigner,\n} from '@cowprotocol/contracts'\nimport type { Signer } from '@ethersproject/abstract-signer'\nimport type { SigningResult, SignOrderParams, SignOrderCancellationParams, UnsignedOrder } from './types'\n\nimport { COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS } from '../common/consts/contracts'\nimport { CowError } from '../common'\nimport type { SupportedChainId } from '../chains'\nimport { EcdsaSigningScheme } from '../order-book'\nimport { SignOrderCancellationsParams } from './types'\n\n// For error codes, see:\n// - https://eth.wiki/json-rpc/json-rpc-error-codes-improvement-proposal\n// - https://www.jsonrpc.org/specification#error_object\nconst METAMASK_SIGNATURE_ERROR_CODE = -32603\nconst METHOD_NOT_FOUND_ERROR_CODE = -32601\n// Added the following because of 1Inch wallet who doesn't send the error code\n// So we will check the actual error text\nconst METHOD_NOT_FOUND_ERROR_MSG_REGEX = /Method not found/i\nconst V4_ERROR_MSG_REGEX = /eth_signTypedData_v4 does not exist/i\nconst V3_ERROR_MSG_REGEX = /eth_signTypedData_v3 does not exist/i\nconst RPC_REQUEST_FAILED_REGEX = /RPC request failed/i\nconst METAMASK_STRING_CHAINID_REGEX = /provided chainid .* must match the active chainid/i\n\nconst mapSigningSchema: Record<EcdsaSigningScheme, EcdsaSigningSchemeContract> = {\n [EcdsaSigningScheme.EIP712]: SigningScheme.EIP712,\n [EcdsaSigningScheme.ETHSIGN]: SigningScheme.ETHSIGN,\n}\n\ninterface ProviderRpcError extends Error {\n message: string\n code: number\n data?: unknown\n}\n\ntype PayloadParams =\n | Pick<SignOrderParams, 'order' & 'chainId'>\n | Pick<SignOrderCancellationParams, 'chainId' & 'orderId'>\n | Pick<SignOrderCancellationsParams, 'chainId' & 'orderUids'>\n\nfunction isProviderRpcError(error: unknown): error is ProviderRpcError {\n return (error as ProviderRpcError).code !== undefined || (error as ProviderRpcError).message !== undefined\n}\n\nasync function _signOrder(params: SignOrderParams): Promise<Signature> {\n const { chainId, signer, order, signingScheme } = params\n\n const domain = getDomain(chainId)\n\n return signOrderGp(domain, order as unknown as OrderFromContract, signer, mapSigningSchema[signingScheme])\n}\n\nasync function _signOrderCancellation(params: SignOrderCancellationParams): Promise<Signature> {\n const { chainId, signer, signingScheme, orderUid } = params\n\n const domain = getDomain(chainId)\n\n return signOrderCancellationGp(domain, orderUid, signer, mapSigningSchema[signingScheme])\n}\n\nasync function _signOrderCancellations(params: SignOrderCancellationsParams): Promise<Signature> {\n const { chainId, signer, signingScheme, orderUids } = params\n\n const domain = getDomain(chainId)\n\n return signOrderCancellationsGp(domain, orderUids, signer, mapSigningSchema[signingScheme])\n}\n\nasync function _signPayload(\n payload: PayloadParams,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signFn: (params: any) => Promise<Signature>,\n signer: Signer,\n signingMethod: 'default' | 'v4' | 'int_v4' | 'v3' | 'eth_sign' = 'v4',\n): Promise<SigningResult> {\n const signingScheme: EcdsaSigningScheme =\n signingMethod === 'eth_sign' ? EcdsaSigningScheme.ETHSIGN : EcdsaSigningScheme.EIP712\n let signature: Signature | null = null\n\n let _signer\n try {\n switch (signingMethod) {\n case 'default':\n case 'v3':\n _signer = new TypedDataVersionedSigner(signer)\n break\n case 'int_v4':\n _signer = new IntChainIdTypedDataV4Signer(signer)\n break\n default:\n _signer = signer\n }\n } catch (e) {\n console.error('Wallet not supported:', e)\n throw new CowError('Wallet not supported')\n }\n\n try {\n signature = (await signFn({ ...payload, signer: _signer, signingScheme })) as EcdsaSignature // Only ECDSA signing supported for now\n } catch (e: unknown) {\n if (!isProviderRpcError(e)) {\n // Some other error signing. Let it bubble up.\n console.error(e)\n throw e\n }\n\n const regexErrorCheck = [METHOD_NOT_FOUND_ERROR_MSG_REGEX, RPC_REQUEST_FAILED_REGEX].some((regex) =>\n // for example 1Inch error doesn't have e.message so we will check the output of toString()\n [(e as Error).message, (e as Error).toString()].some((msg) => regex.test(msg)),\n )\n\n if (e.code === METHOD_NOT_FOUND_ERROR_CODE || regexErrorCheck) {\n // Maybe the wallet returns the proper error code? We can only hope 🤞\n // OR it failed with a generic message, there's no error code set, and we also hope it'll work\n // with other methods...\n switch (signingMethod) {\n case 'v4':\n return _signPayload(payload, signFn, signer, 'default')\n case 'default':\n return _signPayload(payload, signFn, signer, 'v3')\n case 'v3':\n return _signPayload(payload, signFn, signer, 'eth_sign')\n default:\n throw e\n }\n } else if (METAMASK_STRING_CHAINID_REGEX.test(e.message)) {\n // Metamask now enforces chainId to be an integer\n return _signPayload(payload, signFn, signer, 'int_v4')\n } else if (e.code === METAMASK_SIGNATURE_ERROR_CODE) {\n // We tried to sign order the nice way.\n // That works fine for regular MM addresses. Does not work for Hardware wallets, though.\n // See https://github.com/MetaMask/metamask-extension/issues/10240#issuecomment-810552020\n // So, when that specific error occurs, we know this is a problem with MM + HW.\n // Then, we fallback to ETHSIGN.\n return _signPayload(payload, signFn, signer, 'eth_sign')\n } else if (V4_ERROR_MSG_REGEX.test(e.message)) {\n // Failed with `v4`, and the wallet does not set the proper error code\n return _signPayload(payload, signFn, signer, 'v3')\n } else if (V3_ERROR_MSG_REGEX.test(e.message)) {\n // Failed with `v3`, and the wallet does not set the proper error code\n return _signPayload(payload, signFn, signer, 'eth_sign')\n } else {\n // Some other error signing. Let it bubble up.\n console.error(e)\n throw e\n }\n }\n\n const data: unknown = signature?.data\n\n return { signature: data?.toString() || '', signingScheme }\n}\n\n/**\n * Returns the signature for the specified order with the signing scheme encoded\n * into the signature.\n * @param {UnsignedOrder} order The order to sign.\n * @param {SupportedChainId} chainId The chain Id\n * @param {Signer} signer The owner for the order used to sign.\n * @return {*} Encoded signature including signing scheme for the order.\n */\nexport async function signOrder(\n order: UnsignedOrder,\n chainId: SupportedChainId,\n signer: Signer,\n): Promise<SigningResult> {\n return _signPayload({ order, chainId }, _signOrder, signer)\n}\n\n/**\n * Returns the signature for the Order Cancellation with the signing scheme encoded\n * into the signature.\n * @param {string} orderUid The unique identifier of the order being cancelled.\n * @param {SupportedChainId} chainId The chain Id\n * @param {Signer} signer The owner for the order used to sign.\n * @return {*} Encoded signature including signing scheme for the order.\n */\nexport async function signOrderCancellation(\n orderUid: string,\n chainId: SupportedChainId,\n signer: Signer,\n): Promise<SigningResult> {\n return _signPayload({ orderUid, chainId }, _signOrderCancellation, signer)\n}\n\n/**\n * Returns the signature for the Order Cancellations with the signing scheme encoded\n * into the signature.\n *\n * @param {string[]} orderUids The unique identifiers of the orders being cancelled.\n * @param {SupportedChainId} chainId The CoW Protocol protocol `chainId` context that's being used.\n * @param {Signer} signer The owner that had placed the orders used to sign.\n * @returns {*} Encoded signature including signing scheme for the order.\n */\nexport async function signOrderCancellations(\n orderUids: string[],\n chainId: SupportedChainId,\n signer: Signer,\n): Promise<SigningResult> {\n return _signPayload({ orderUids, chainId }, _signOrderCancellations, signer)\n}\n\n/**\n * Returns the TypedDataDomain used for signing for the specified chainId.\n * @param {SupportedChainId} chainId The chain Id\n * @return {*} The TypedDataDomain for the specified chainId.\n * @throws {CowError} If the chainId is not supported.\n */\nexport function getDomain(chainId: SupportedChainId): TypedDataDomain {\n // Get settlement contract address\n const settlementContract = COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS[chainId]\n\n if (!settlementContract) {\n throw new CowError('Unsupported network. Settlement contract is not deployed')\n }\n\n return domainGp(chainId, settlementContract)\n}\n\n/**\n * Generate a deterministic order ID for the specified order.\n * @param {SupportedChainId} chainId The chain Id\n * @param {Order} order order to sign\n * @param {Pick<OrderUidParams, 'owner'>} params order unique identifier parameters.\n */\nexport async function generateOrderId(\n chainId: SupportedChainId,\n order: Order,\n params: Pick<OrderUidParams, 'owner'>,\n): Promise<{ orderId: string; orderDigest: string }> {\n const domain = await getDomain(chainId)\n const orderDigest = hashOrder(domain, order)\n // Generate the orderId from owner, orderDigest, and max validTo\n const orderId = packOrderUidParams({\n ...params,\n orderDigest,\n // Different validTo when signing because EthFlow contract expects it to be max for all orders\n validTo: order.validTo,\n })\n\n return { orderId, orderDigest }\n}\n"],"names":["_signPayload","payload","signFn","signer","signingMethod","_exit","_temp2","_result","data","signature","toString","signingScheme","EcdsaSigningScheme","ETHSIGN","EIP712","_signer","TypedDataVersionedSigner","IntChainIdTypedDataV4Signer","e","console","error","CowError","_temp","Promise","resolve","then","_signFn","_catch","undefined","code","message","regexErrorCheck","METHOD_NOT_FOUND_ERROR_MSG_REGEX","RPC_REQUEST_FAILED_REGEX","some","regex","msg","test","METHOD_NOT_FOUND_ERROR_CODE","METAMASK_STRING_CHAINID_REGEX","_signPayload5","METAMASK_SIGNATURE_ERROR_CODE","_signPayload6","V4_ERROR_MSG_REGEX","_signPayload7","V3_ERROR_MSG_REGEX","_signPayload8","_signPayload2","_signPayload3","_signPayload4","reject","_signOrderCancellations","params","chainId","orderUids","domain","getDomain","signOrderCancellationsGp","signOrderCancellations","mapSigningSchema","_signOrderCancellation","orderUid","signOrderCancellationGp","_signOrder","order","signOrderGp","SigningScheme","settlementContract","COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS","domainGp","generateOrderId","orderDigest","hashOrder","orderId","packOrderUidParams","validTo"],"mappings":"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"}
|
package/dist/utils-c9bb9a82.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as e,_ as t,a as r,E as n}from"./index-ba4aa036.js";import{domain as i,hashOrder as o,packOrderUidParams as s,IntChainIdTypedDataV4Signer as a,TypedDataVersionedSigner as c,signOrder as d,signOrderCancellation as l,signOrderCancellations as u,SigningScheme as g}from"@cowprotocol/contracts";import"cross-fetch/polyfill";import"limiter";import"exponential-backoff";import"ethers";import"@ethersproject/abstract-signer";import"@cowprotocol/app-data";import"ethers/lib/utils";import"deepmerge";import"@weiroll/weiroll.js";import"graphql-request";import"@openzeppelin/merkle-tree";const h=-32603,p=-32601,m=/Method not found/i,f=/eth_signTypedData_v4 does not exist/i,v=/eth_signTypedData_v3 does not exist/i,w=/RPC request failed/i,y=/provided chainid .* must match the active chainid/i,I={[n.EIP712]:g.EIP712,[n.ETHSIGN]:g.ETHSIGN};async function S(e){const{chainId:t,signer:r,order:n,signingScheme:i}=e,o=U(t);return d(o,n,r,I[i])}async function _(e){const{chainId:t,signer:r,signingScheme:n,orderUid:i}=e,o=U(t);return l(o,i,r,I[n])}async function E(e){const{chainId:t,signer:r,signingScheme:n,orderUids:i}=e,o=U(t);return u(o,i,r,I[n])}async function T(r,i,o,s="v4"){var d;const l="eth_sign"===s?n.ETHSIGN:n.EIP712;let u,g=null;try{switch(s){case"default":case"v3":u=new c(o);break;case"int_v4":u=new a(o);break;default:u=o}}catch(t){throw console.error("Wallet not supported:",t),new e("Wallet not supported")}try{g=await i(t({},r,{signer:u,signingScheme:l}))}catch(e){if(void 0===(I=e).code&&void 0===I.message)throw console.error(e),e;const t=[m,w].some(t=>[e.message,e.toString()].some(e=>t.test(e)));if(e.code!==p&&!t){if(y.test(e.message))return T(r,i,o,"int_v4");if(e.code===h)return T(r,i,o,"eth_sign");if(f.test(e.message))return T(r,i,o,"v3");if(v.test(e.message))return T(r,i,o,"eth_sign");throw console.error(e),e}switch(s){case"v4":return T(r,i,o,"default");case"default":return T(r,i,o,"v3");case"v3":return T(r,i,o,"eth_sign");default:throw e}}var I;const S=null==(d=g)?void 0:d.data;return{signature:(null==S?void 0:S.toString())||"",signingScheme:l}}async function b(e,t,r){return T({order:e,chainId:t},S,r)}async function k(e,t,r){return T({orderUid:e,chainId:t},_,r)}async function x(e,t,r){return T({orderUids:e,chainId:t},E,r)}function U(t){const n=r[t];if(!n)throw new e("Unsupported network. Settlement contract is not deployed");return i(t,n)}async function C(e,r,n){const i=await U(e),a=o(i,r);return{orderId:s(t({},n,{orderDigest:a,validTo:r.validTo})),orderDigest:a}}export{C as generateOrderId,U as getDomain,b as signOrder,k as signOrderCancellation,x as signOrderCancellations};
|
|
2
|
-
//# sourceMappingURL=utils-c9bb9a82.js.map
|