MCPcopy Create free account
hub / github.com/cowprotocol/services / postgres_solvable_orders

Function postgres_solvable_orders

crates/database/src/orders.rs:1913–2028  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1911 #[tokio::test]
1912 #[ignore]
1913 async fn postgres_solvable_orders() {
1914 let mut db = PgConnection::connect("postgresql://").await.unwrap();
1915 let mut db = db.begin().await.unwrap();
1916 crate::clear_DANGER_(&mut db).await.unwrap();
1917
1918 let order = Order {
1919 kind: OrderKind::Sell,
1920 sell_amount: 10.into(),
1921 buy_amount: 100.into(),
1922 valid_to: 3,
1923 partially_fillable: true,
1924 creation_timestamp: Utc::now(),
1925 ..Default::default()
1926 };
1927 insert_order(&mut db, &order).await.unwrap();
1928
1929 async fn get_full_order(ex: &mut PgConnection, min_valid_to: i64) -> Option<FullOrder> {
1930 solvable_orders(ex, min_valid_to)
1931 .next()
1932 .await
1933 .transpose()
1934 .unwrap()
1935 }
1936
1937 // not solvable because valid to
1938 assert!(get_full_order(&mut db, 4).await.is_none());
1939
1940 // not solvable because fully executed
1941 crate::events::append(
1942 &mut db,
1943 &[(
1944 EventIndex {
1945 block_number: 0,
1946 log_index: 0,
1947 },
1948 Event::Trade(Trade {
1949 order_uid: order.uid,
1950 sell_amount_including_fee: 10.into(),
1951 ..Default::default()
1952 }),
1953 )],
1954 )
1955 .await
1956 .unwrap();
1957 assert!(get_full_order(&mut db, 0).await.is_none());
1958 crate::events::delete(&mut db, 0).await.unwrap();
1959
1960 // not solvable because invalidated
1961 crate::events::append(
1962 &mut db,
1963 &[(
1964 EventIndex {
1965 block_number: 0,
1966 log_index: 0,
1967 },
1968 Event::Invalidation(Invalidation {
1969 order_uid: order.uid,
1970 }),

Callers

nothing calls this directly

Calls 12

connectFunction · 0.85
clear_DANGER_Function · 0.85
nowFunction · 0.85
InvalidationClass · 0.85
insert_onchain_orderFunction · 0.85
unwrapMethod · 0.80
insert_orderFunction · 0.70
appendFunction · 0.70
TradeClass · 0.70
deleteFunction · 0.70
intoMethod · 0.45

Tested by

no test coverage detected