Skip to content

Commit

Permalink
valence: Allow changing auction start block delta.
Browse files Browse the repository at this point in the history
  • Loading branch information
dowlandaiello committed Jul 5, 2024
1 parent 61f6c69 commit 0cd0e5a
Showing 1 changed file with 32 additions and 20 deletions.
52 changes: 32 additions & 20 deletions src/utils/setup/valence.rs
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ pub struct StartAuctionTxBuilder<'a> {
key: &'a str,
offer_asset: Option<&'a str>,
ask_asset: Option<&'a str>,
start_block_delta: Option<u128>,
end_block_delta: Option<u128>,
test_ctx: &'a mut TestContext,
}
Expand All @@ -217,6 +218,12 @@ impl<'a> StartAuctionTxBuilder<'a> {
self
}

pub fn with_start_block_delta(&mut self, start_block_delta: u128) -> &mut Self {
self.start_block_delta = Some(start_block_delta);

self
}

pub fn with_end_block_delta(&mut self, delta_blocks: u128) -> &mut Self {
self.end_block_delta = Some(delta_blocks);

Expand All @@ -227,6 +234,7 @@ impl<'a> StartAuctionTxBuilder<'a> {
pub fn send(&mut self) -> Result<(), Error> {
self.test_ctx.tx_start_auction(
self.key,
self.start_block_delta,
self.end_block_delta
.ok_or(Error::MissingBuilderParam(String::from("end_block_delta")))?,
(
Expand Down Expand Up @@ -753,6 +761,7 @@ impl TestContext {
key: DEFAULT_KEY,
offer_asset: Default::default(),
ask_asset: Default::default(),
start_block_delta: Default::default(),
end_block_delta: Default::default(),
test_ctx: self,
}
Expand All @@ -762,30 +771,33 @@ impl TestContext {
fn tx_start_auction<TDenomA: AsRef<str>, TDenomB: AsRef<str>>(
&mut self,
sender_key: &str,
start_block_delta: Option<u128>,
end_blocks: u128,
pair: (TDenomA, TDenomB),
) -> Result<(), Error> {
let manager = self.get_auctions_manager()?;
let neutron = self.get_chain(NEUTRON_CHAIN_NAME);

let start_block_resp = neutron
.rb
.bin("q block --node=%RPC% --chain-id=%CHAIN_ID%", true);
let maybe_start_block_data: Value = start_block_resp
.get("text")
.and_then(|maybe_text| maybe_text.as_str())
.and_then(|text| serde_json::from_str(text).ok())
.ok_or(Error::ContainerCmd(String::from("query block")))?;

let maybe_start_block = maybe_start_block_data
.get("block")
.and_then(|block| block.get("header"))
.and_then(|header| header.get("height"))
.ok_or(Error::ContainerCmd(String::from("query block")))?;
let start_block = maybe_start_block
.as_str()
.and_then(|s| s.parse::<u128>().ok())
.ok_or(Error::ContainerCmd(String::from("query block")))?;
let start_block = {
let start_block_resp = neutron
.rb
.bin("q block --node=%RPC% --chain-id=%CHAIN_ID%", true);
let maybe_start_block_data: Value = start_block_resp
.get("text")
.and_then(|maybe_text| maybe_text.as_str())
.and_then(|text| serde_json::from_str(text).ok())
.ok_or(Error::ContainerCmd(String::from("query block")))?;

let maybe_start_block = maybe_start_block_data
.get("block")
.and_then(|block| block.get("header"))
.and_then(|header| header.get("height"))
.ok_or(Error::ContainerCmd(String::from("query block")))?;
maybe_start_block
.as_str()
.and_then(|s| s.parse::<u128>().ok())
.ok_or(Error::ContainerCmd(String::from("query block")))?
};

let receipt = manager.execute(
sender_key,
Expand All @@ -794,8 +806,8 @@ impl TestContext {
"open_auction": {
"pair": (pair.0.as_ref(), pair.1.as_ref()),
"params": {
"end_block": start_block + end_blocks,
"start_block": start_block,
"end_block": start_block + start_block_delta.unwrap_or_default() + end_blocks,
"start_block": start_block + start_block_delta.unwrap_or_default(),
}
}},
})
Expand Down

0 comments on commit 0cd0e5a

Please sign in to comment.