1#![deny(unsafe_code)]
49#![warn(missing_docs)]
50
51pub mod app_data;
52pub mod bridging;
53pub mod common;
54pub mod composable;
55pub mod config;
56pub mod cow_shed;
57pub mod erc20;
58pub mod error;
59pub mod ethflow;
60pub mod flash_loans;
61pub mod onchain;
62pub mod order_book;
63pub mod order_signing;
64pub mod permit;
65pub mod settlement;
66pub mod subgraph;
67pub mod trading;
68pub mod traits;
69pub mod types;
70pub mod weiroll;
71
72#[cfg_attr(
73 feature = "wasm",
74 allow(unsafe_code, reason = "wasm-bindgen macro generates unsafe glue code")
75)]
76pub mod browser_wallet;
77
78#[cfg(feature = "wasm")]
79#[allow(unsafe_code, reason = "wasm-bindgen macro generates unsafe glue code")]
80pub mod wasm;
81
82pub use app_data::{
85 AppDataDoc, AppDataInfo, CidComponents, CowHook, DEFAULT_IPFS_READ_URI, DEFAULT_IPFS_WRITE_URI,
86 Ipfs, IpfsUploadResult, LATEST_APP_DATA_VERSION, Metadata, MetadataApi, OrderClassKind,
87 OrderInteractionHooks, PartnerFee, PartnerFeeEntry, Quote, Referrer, ReplacedOrder, Utm,
88 ValidationError, ValidationResult, Widget, appdata_hex, appdata_hex_to_cid, appdata_json,
89 assert_cid, build_app_data_doc, build_app_data_doc_full, build_order_app_data,
90 cid_to_appdata_hex, decode_cid, extract_digest, fetch_doc_from_app_data_hex,
91 fetch_doc_from_cid, get_app_data_info, get_app_data_schema, get_partner_fee_bps, import_schema,
92 merge_app_data_doc, parse_cid, pin_json_in_pinata_ipfs, stringify_deterministic,
93 upload_app_data_to_pinata, validate_app_data_doc,
94};
95#[allow(
96 deprecated,
97 reason = "re-exporting deprecated legacy functions for backwards compatibility"
98)]
99pub use app_data::{
100 app_data_hex_to_cid_legacy, fetch_doc_from_app_data_hex_legacy, get_app_data_info_legacy,
101 upload_metadata_doc_to_ipfs_legacy,
102};
103pub use bridging::{
104 ACROSS_DEPOSIT_EVENT_INTERFACE, BridgeError, BridgeProvider, BridgingSdk,
105 COW_TRADE_EVENT_INTERFACE, QuoteBridgeRequest, QuoteBridgeResponse, QuoteStrategy,
106 create_strategies, get_cache_key, safe_call_best_quote_callback,
107 safe_call_progressive_callback,
108};
109pub use composable::{
110 BlockInfo, COMPOSABLE_COW_ADDRESS, CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,
111 ConditionalOrderFactory, ConditionalOrderKind, ConditionalOrderParams, DurationOfPart,
112 GAT_HANDLER_ADDRESS, GatData, GatOrder, GpV2OrderStruct, IsValidResult, MAX_FREQUENCY,
113 Multiplexer, OrderProof, PollResult, ProofLocation, ProofStruct, ProofWithParams,
114 STOP_LOSS_HANDLER_ADDRESS, StopLossData, StopLossOrder, TWAP_HANDLER_ADDRESS,
115 TestConditionalOrderParams, TwapData, TwapOrder, TwapStartTime, TwapStruct, balance_to_string,
116 create_calldata, create_set_domain_verifier_tx, create_test_conditional_order,
117 create_with_context_calldata, data_to_struct, decode_gat_static_input, decode_params,
118 decode_stop_loss_static_input, decode_twap_static_input, decode_twap_struct,
119 default_token_formatter, encode_gat_struct, encode_params, encode_stop_loss_struct,
120 encode_twap_struct, format_epoch, from_struct_to_order, get_block_info, get_domain_verifier,
121 get_domain_verifier_calldata, get_is_valid_result, is_composable_cow,
122 is_extensible_fallback_handler, is_valid_abi, kind_to_string, order_id, remove_calldata,
123 set_root_calldata, set_root_with_context_calldata, struct_to_data, transform_data_to_struct,
124 transform_struct_to_data,
125};
126pub use config::{
127 AdditionalTargetChainId, AddressPerChain, ApiBaseUrls, ApiContext, BARN_ETH_FLOW,
128 BTC_CURRENCY_ADDRESS, BUY_ETH_ADDRESS, COMPOSABLE_COW, ChainContract, ChainContracts,
129 ChainInfo, ChainRpcUrls, ChainTokenInfo, CowSwapConfig, DEPLOYER_CONTRACT, ETH_FLOW_PROD,
130 ETH_FLOW_STAGING, EVM_NATIVE_CURRENCY_ADDRESS, EXTENSIBLE_FALLBACK_HANDLER, Env, EvmCall,
131 EvmChainInfo, EvmChains, IpfsConfig, MAX_VALID_TO_EPOCH, NATIVE_CURRENCY_ADDRESS,
132 NonEvmChainInfo, NonEvmChains, ProtocolOptions, RAW_CHAINS_FILES_PATH, RAW_FILES_PATH, SALT,
133 SETTLEMENT_CONTRACT, SETTLEMENT_CONTRACT_STAGING, SOL_NATIVE_CURRENCY_ADDRESS,
134 SupportedChainId, TOKEN_LIST_IMAGES_PATH, TargetChainId, ThemedImage, TokenInfo, TokenRegistry,
135 VAULT_RELAYER, VAULT_RELAYER_STAGING, WebUrl, additional_target_chain_info,
136 all_additional_target_chain_ids, all_additional_target_chains, all_chain_ids, all_chains,
137 all_supported_chain_ids, all_supported_chains, api_base_url, api_url, composable_cow,
138 composable_cow_contract_address, cow_protocol_settlement_contract_address,
139 cow_protocol_vault_relayer_address, cow_protocol_vault_relayer_address_staging,
140 deterministic_deployment_address, eth_flow_for_env, extensible_fallback_handler,
141 extensible_fallback_handler_contract_address, get_chain_info, get_wrapped_token_for_chain,
142 implementation_address_slot, is_additional_target_chain, is_btc_chain, is_chain_deprecated,
143 is_chain_under_development, is_evm_chain, is_evm_chain_info, is_non_evm_chain,
144 is_non_evm_chain_info, is_supported_chain, is_target_chain_id, is_zk_sync_chain,
145 map_address_to_supported_networks, map_all_networks, map_supported_networks,
146 order_explorer_link, owner_address_slot, settlement_contract, settlement_contract_for_env,
147 supported_chain_info, tradable_supported_chain_ids, tradable_supported_chains, vault_relayer,
148 vault_relayer_for_env, wrapped_native_currency,
149};
150pub use cow_shed::{CowShedCall, CowShedHookParams, CowShedSdk};
151pub use erc20::{
152 build_eip2612_nonces_calldata, build_eip2612_version_calldata, build_erc20_allowance_calldata,
153 build_erc20_approve_calldata, build_erc20_balance_of_calldata, build_erc20_decimals_calldata,
154 build_erc20_name_calldata, build_erc20_transfer_calldata, build_erc20_transfer_from_calldata,
155};
156pub use error::CowError;
157pub use ethflow::{
158 EthFlowOrderData, EthFlowTransaction, build_eth_flow_transaction, encode_eth_flow_create_order,
159 is_eth_flow_order_data,
160};
161pub use flash_loans::{FlashLoanParams, FlashLoanProvider, FlashLoanSdk};
162pub use onchain::{OnchainReader, permit::OnchainTokenInfo};
163pub use order_book::{
165 AppDataObject, Auction, CompetitionAuction, CompetitionOrderStatus, CompetitionOrderStatusKind,
166 DEFAULT_RETRY_STATUS_CODES, EthflowData, GetOrdersRequest, GetTradesRequest, InteractionData,
167 OnchainOrderData, Order, OrderBookApi, OrderCancellations, OrderClass, OrderCreation,
168 OrderInteractions, OrderQuoteRequest, OrderQuoteResponse, OrderStatus, OrderUid,
169 PartnerFeeResult, ProtocolFeeAmountParams, QuoteAmounts, QuoteAmountsAndCostsParams,
170 QuoteAmountsAndCostsResult, QuoteCosts, QuoteData, QuoteFeeComponent, QuoteNetworkFee,
171 QuoteOrderParams, QuoteSide, RateLimiter, RetryPolicy, SolverCompetition, SolverExecution,
172 SolverSettlement, TotalSurplus, Trade, get_protocol_fee_amount,
173 get_quote_amounts_after_partner_fee, get_quote_amounts_after_slippage,
174 get_quote_amounts_and_costs, is_eth_flow_order, transform_order,
175};
176pub use order_signing::{
177 EIP1271_MAGICVALUE, ORDER_PRIMARY_TYPE, ORDER_TYPE_HASH, ORDER_UID_LENGTH, OrderDomain,
178 OrderFlags, OrderTypedData, OrderUidParams, PRE_SIGNED, SignOrderCancellationParams,
179 SignOrderCancellationsParams, SignOrderParams, SigningResult, TradeFlags, UnsignedOrder,
180 build_order_typed_data, cancellations_hash, compute_order_uid, decode_order_flags,
181 decode_signature_owner, decode_signing_scheme, decode_trade_flags, domain_separator,
182 domain_separator_from, eip1271_result, encode_order_flags, encode_signing_scheme,
183 encode_trade_flags, extract_order_uid_params, generate_order_id, get_domain, hash_order,
184 hash_order_cancellation, hash_order_cancellations, hash_typed_data, hashify,
185 invalidate_order_calldata, normalize_buy_token_balance, normalize_order, order_hash,
186 pack_order_uid_params, presign_result, set_pre_signature_calldata, sign_order,
187 sign_order_cancellation, sign_order_cancellations, signing_digest,
188};
189pub use permit::{
190 Erc20PermitInfo, PERMIT_GAS_LIMIT, PermitHookData, PermitInfo, build_permit_calldata,
191 build_permit_hook, permit_digest, permit_domain_separator, permit_type_hash, sign_permit,
192};
193pub use settlement::{
194 encoder::{EncodedInteraction, InteractionStage, SettlementEncoder},
195 reader::{AllowListReader, SettlementReader},
196 refunds::{OrderRefund, RefundType, ethflow_refund_calldata, settlement_refund_calldata},
197 simulator::{SimulationResult, TradeSimulator},
198 vault::{
199 VAULT_ACTIONS, grant_role_calldata, required_vault_role_calls,
200 required_vault_role_selectors, revoke_role_calldata, vault_role_hash,
201 },
202};
203pub use subgraph::{
204 Bundle, DailyTotal, DailyVolume, HourlyTotal, HourlyVolume, LAST_DAYS_VOLUME_QUERY,
205 LAST_HOURS_VOLUME_QUERY, PairDaily, PairHourly, SubgraphApi, SubgraphBlock, SubgraphMeta,
206 SubgraphOrder, SubgraphPair, SubgraphSettlement, SubgraphToken, SubgraphTrade, SubgraphUser,
207 TOTALS_QUERY, TokenDailyTotal, TokenHourlyTotal, TokenTradingEvent, Total, Totals, UniswapPool,
208 UniswapToken,
209};
210pub use trading::{
211 Amounts, BuildAppDataParams, DEFAULT_FEE_SLIPPAGE_FACTOR_PCT, DEFAULT_QUOTE_VALIDITY,
212 DEFAULT_SLIPPAGE_BPS, DEFAULT_VOLUME_SLIPPAGE_BPS, ETH_FLOW_DEFAULT_SLIPPAGE_BPS,
213 GAS_LIMIT_DEFAULT, LimitOrderAdvancedSettings, LimitTradeParameters,
214 LimitTradeParametersFromQuote, MAX_SLIPPAGE_BPS, NetworkFee, OrderPostingResult,
215 PartnerFeeCost, PostTradeAdditionalParams, ProtocolFeeCost, QuoteAmountsAndCosts, QuoteResults,
216 QuoteResultsWithSigner, QuoterParameters, SlippageToleranceRequest, SlippageToleranceResponse,
217 SwapAdvancedSettings, TradeParameters, TradingAppDataInfo, TradingSdk, TradingSdkConfig,
218 TradingTransactionParams, adjust_eth_flow_limit_order_params, adjust_eth_flow_order_params,
219 apply_percentage, apply_settings_to_limit_trade_parameters, bps_to_percentage, build_app_data,
220 calculate_gas_margin, calculate_unique_order_id, generate_app_data_from_doc,
221 get_default_slippage_bps, get_default_utm_params, get_eth_flow_cancellation,
222 get_eth_flow_contract, get_is_eth_flow_order, get_order_deadline_from_now, get_order_to_sign,
223 get_order_typed_data, get_quote_raw, get_quote_with_signer, get_settlement_cancellation,
224 get_settlement_contract, get_slippage_percent, get_trade_parameters_after_quote, get_trader,
225 map_quote_amounts_and_costs, percentage_to_bps, post_co_w_protocol_trade,
226 post_cow_protocol_trade, post_sell_native_currency_order, resolve_order_book_api,
227 resolve_signer, resolve_slippage_suggestion, suggest_slippage_bps, suggest_slippage_from_fee,
228 suggest_slippage_from_volume, swap_params_to_limit_order_params, unsigned_order_for_signing,
229};
230pub use traits::{CowSigner, IpfsClient, OrderbookClient, RpcProvider};
231pub use types::{
232 ATTESTATION_PREFIX_CONST, ATTESTATOR_ADDRESS, ATTESTION_VERSION_BYTE, EcdsaSigningScheme,
233 HUNDRED_THOUSANDS, LIMIT_CONCURRENT_REQUESTS, MAX_UINT32, MAX_UINT256, ONE, ONE_HUNDRED_BPS,
234 OrderKind, PriceQuality, SigningScheme, TokenBalance, ZERO, ZERO_ADDRESS, ZERO_HASH,
235};
236pub use weiroll::{
237 WEIROLL_ADDRESS, WeirollCommand, WeirollCommandFlags, WeirollContractRef, WeirollPlanner,
238 WeirollScript, create_weiroll_contract, create_weiroll_delegate_call, create_weiroll_library,
239 define_read_only, get_static,
240};