ido: keep offeredTokenTotalSupply in Active parameters
IdoActiveParameters dropped offeredTokenTotalSupply, so clients couldn't compute the offered-vs-total-supply share for live (non-PREINIT) IDOs. Carry it forward from the preinit parameters at the PreInit->Active transition and add it to the struct. A serde default of -1 (the pre-existing-token "unknown supply" sentinel) lets ido_state rows written before this field existed still deserialize. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a73dff52df
commit
0eb86131f4
1 changed files with 15 additions and 0 deletions
|
|
@ -305,6 +305,13 @@ pub struct IdoPreInitParameters {
|
||||||
permanentLiquidityMinFee: Integer,
|
permanentLiquidityMinFee: Integer,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default for `IdoActiveParameters::offeredTokenTotalSupply` so state rows
|
||||||
|
// written before the field existed still deserialize. `-1` is the
|
||||||
|
// pre-existing-token "unknown supply" sentinel.
|
||||||
|
fn default_offered_token_total_supply() -> Integer {
|
||||||
|
Integer::from(-1i64)
|
||||||
|
}
|
||||||
|
|
||||||
#[serde_as]
|
#[serde_as]
|
||||||
#[derive(Serialize, Deserialize, Clone)]
|
#[derive(Serialize, Deserialize, Clone)]
|
||||||
pub struct IdoActiveParameters {
|
pub struct IdoActiveParameters {
|
||||||
|
|
@ -313,6 +320,11 @@ pub struct IdoActiveParameters {
|
||||||
collectorNFTH: Vec<u8>,
|
collectorNFTH: Vec<u8>,
|
||||||
#[serde_as(as = "IntegerAsStr")]
|
#[serde_as(as = "IntegerAsStr")]
|
||||||
permanentLiquidityShareNumerator: Integer,
|
permanentLiquidityShareNumerator: Integer,
|
||||||
|
// Carried forward from the preinit parameters so it survives the
|
||||||
|
// PreInit→Active transition.
|
||||||
|
#[serde_as(as = "IntegerAsStr")]
|
||||||
|
#[serde(default = "default_offered_token_total_supply")]
|
||||||
|
offeredTokenTotalSupply: Integer,
|
||||||
#[serde_as(as = "IntegerAsStr")]
|
#[serde_as(as = "IntegerAsStr")]
|
||||||
offeredTokenAmount: Integer,
|
offeredTokenAmount: Integer,
|
||||||
offering: IdoParametersOffering,
|
offering: IdoParametersOffering,
|
||||||
|
|
@ -2309,6 +2321,9 @@ fn ido_add_tx(context: &IdoContext, tx: &Transaction) -> Result<IdoAddResult> {
|
||||||
permanentLiquidityShareNumerator: preinit_params
|
permanentLiquidityShareNumerator: preinit_params
|
||||||
.permanentLiquidityShareNumerator
|
.permanentLiquidityShareNumerator
|
||||||
.clone(),
|
.clone(),
|
||||||
|
offeredTokenTotalSupply: preinit_params
|
||||||
|
.offeredTokenTotalSupply
|
||||||
|
.clone(),
|
||||||
offeredTokenAmount: preinit_params.offeredTokenAmount.clone(),
|
offeredTokenAmount: preinit_params.offeredTokenAmount.clone(),
|
||||||
offering: preinit_params.offering.clone(),
|
offering: preinit_params.offering.clone(),
|
||||||
orbPoolParamsCategory: preinit_params.orbPoolParamsCategory.clone(),
|
orbPoolParamsCategory: preinit_params.orbPoolParamsCategory.clone(),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue