Skip to content

Commit

Permalink
feat(tf tracker): allow to track over blocks or seconds
Browse files Browse the repository at this point in the history
* feat(tf tracker): allow to track over blocks or seconds

* fix dependency

* fix tracker queries
  • Loading branch information
epanchee authored Jun 21, 2024
1 parent a32c1f9 commit 875bcef
Show file tree
Hide file tree
Showing 27 changed files with 319 additions and 116 deletions.
60 changes: 37 additions & 23 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion contracts/pair/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "astroport-pair"
version = "2.0.0"
version = "2.0.1"
authors = ["Astroport"]
edition = "2021"
description = "The Astroport constant product pool contract implementation"
Expand Down
1 change: 1 addition & 0 deletions contracts/pair/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ pub fn reply(deps: DepsMut, env: Env, msg: Reply) -> Result<Response, ContractEr
.token_factory_addr
.to_string(),
tracked_denom: new_token_denom.clone(),
track_over_seconds: false,
})?,
funds: vec![],
label: format!("{new_token_denom} tracking contract"),
Expand Down
4 changes: 2 additions & 2 deletions contracts/pair/tests/integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2411,7 +2411,7 @@ fn test_tracker_contract() {
.wrap()
.query_wasm_smart(
tracker_addr.clone(),
&TrackerQueryMsg::TotalSupplyAt { timestamp: None },
&TrackerQueryMsg::TotalSupplyAt { unit: None },
)
.unwrap();

Expand All @@ -2423,7 +2423,7 @@ fn test_tracker_contract() {
tracker_addr,
&TrackerQueryMsg::BalanceAt {
address: alice.to_string(),
timestamp: None,
unit: None,
},
)
.unwrap();
Expand Down
2 changes: 1 addition & 1 deletion contracts/pair_concentrated/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "astroport-pair-concentrated"
version = "4.0.0"
version = "4.0.1"
authors = ["Astroport"]
edition = "2021"
description = "The Astroport concentrated liquidity pair"
Expand Down
1 change: 1 addition & 0 deletions contracts/pair_concentrated/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ pub fn reply(deps: DepsMut, env: Env, msg: Reply) -> Result<Response, ContractEr
.token_factory_addr
.to_string(),
tracked_denom: new_token_denom.clone(),
track_over_seconds: false,
})?,
funds: vec![],
label: format!("{new_token_denom} tracking contract"),
Expand Down
59 changes: 54 additions & 5 deletions contracts/pair_concentrated/tests/pair_concentrated_integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1919,7 +1919,7 @@ fn test_tracker_contract() {
alice.clone(),
&[Coin {
denom: helper.lp_token.to_string(),
amount: Uint128::new(100),
amount: 10000u128.into(),
}],
)
.unwrap();
Expand All @@ -1929,7 +1929,7 @@ fn test_tracker_contract() {
.wrap()
.query_wasm_smart(
tracker_addr.clone(),
&TrackerQueryMsg::TotalSupplyAt { timestamp: None },
&TrackerQueryMsg::TotalSupplyAt { unit: None },
)
.unwrap();

Expand All @@ -1939,13 +1939,62 @@ fn test_tracker_contract() {
.app
.wrap()
.query_wasm_smart(
tracker_addr,
&tracker_addr,
&TrackerQueryMsg::BalanceAt {
address: alice.to_string(),
timestamp: None,
unit: None,
},
)
.unwrap();

assert_eq!(alice_balance, Uint128::new(100));
assert_eq!(alice_balance.u128(), 10000);

let alice_share: Vec<Asset> = helper
.app
.wrap()
.query_wasm_smart(
&helper.pair_addr,
&QueryMsg::Share {
amount: 10000u128.into(),
},
)
.unwrap();

let block_height = helper.app.block_info().height;

helper.app.update_block(|b| b.height += 10);

let historical_total_supply: Uint128 = helper
.app
.wrap()
.query_wasm_smart(
&tracker_addr,
&TrackerQueryMsg::TotalSupplyAt {
unit: Some(block_height + 1),
},
)
.unwrap();
let alice_lp_balance: Uint128 = helper
.app
.wrap()
.query_wasm_smart(
&tracker_addr,
&TrackerQueryMsg::BalanceAt {
address: alice.to_string(),
unit: Some(block_height + 1),
},
)
.unwrap();

assert_eq!(historical_total_supply, total_supply);
assert_eq!(alice_lp_balance.u128(), 10000);

let historical_balance: Uint128 = helper
.query_asset_balance_at(&helper.assets[&test_coins[0]], block_height + 1)
.unwrap()
.unwrap();
let alice_hist_bal =
historical_balance.multiply_ratio(alice_lp_balance - Uint128::one(), total_supply);

assert_eq!(alice_share[0].amount, alice_hist_bal);
}
2 changes: 1 addition & 1 deletion contracts/pair_xyk_sale_tax/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "astroport-pair-xyk-sale-tax"
version = "2.0.0"
version = "2.0.1"
authors = ["Astroport", "Sturdy"]
edition = "2021"
description = "The Astroport constant product pool contract implementation"
Expand Down
1 change: 1 addition & 0 deletions contracts/pair_xyk_sale_tax/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ pub fn reply(deps: DepsMut, env: Env, msg: Reply) -> Result<Response, ContractEr
.token_factory_addr
.to_string(),
tracked_denom: new_token_denom.clone(),
track_over_seconds: false,
})?,
funds: vec![],
label: format!("{new_token_denom} tracking contract"),
Expand Down
4 changes: 2 additions & 2 deletions contracts/pair_xyk_sale_tax/tests/integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2024,7 +2024,7 @@ fn test_tracker_contract() {
.wrap()
.query_wasm_smart(
tracker_addr.clone(),
&TrackerQueryMsg::TotalSupplyAt { timestamp: None },
&TrackerQueryMsg::TotalSupplyAt { unit: None },
)
.unwrap();

Expand All @@ -2036,7 +2036,7 @@ fn test_tracker_contract() {
tracker_addr,
&TrackerQueryMsg::BalanceAt {
address: alice.to_string(),
timestamp: None,
unit: None,
},
)
.unwrap();
Expand Down
6 changes: 3 additions & 3 deletions contracts/periphery/tokenfactory_tracker/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "astroport-tokenfactory-tracker"
version = "1.0.0"
version = "2.0.0"
edition = "2021"

[features]
Expand All @@ -16,9 +16,9 @@ cosmwasm-std = { workspace = true, features = ["cosmwasm_1_1"] }
cw-storage-plus.workspace = true
cosmwasm-schema.workspace = true
thiserror.workspace = true
astroport = "4"
astroport = { path = "../../../packages/astroport", version = "5.1" }

#Optional dependencies
# Optional dependencies
neutron-test-tube = { git = "https://github.com/j0nl1/neutron-test-tube", optional = true }
test-tube = { git = "https://github.com/j0nl1/neutron-test-tube", optional = true }

Expand Down
Loading

0 comments on commit 875bcef

Please sign in to comment.