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
2bcbe9ae81
commit
1568d42d34
1 changed files with 15 additions and 0 deletions
|
|
@ -305,6 +305,13 @@ pub struct IdoPreInitParameters {
|
|||
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]
|
||||
#[derive(Serialize, Deserialize, Clone)]
|
||||
pub struct IdoActiveParameters {
|
||||
|
|
@ -313,6 +320,11 @@ pub struct IdoActiveParameters {
|
|||
collectorNFTH: Vec<u8>,
|
||||
#[serde_as(as = "IntegerAsStr")]
|
||||
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")]
|
||||
offeredTokenAmount: Integer,
|
||||
offering: IdoParametersOffering,
|
||||
|
|
@ -2309,6 +2321,9 @@ fn ido_add_tx(context: &IdoContext, tx: &Transaction) -> Result<IdoAddResult> {
|
|||
permanentLiquidityShareNumerator: preinit_params
|
||||
.permanentLiquidityShareNumerator
|
||||
.clone(),
|
||||
offeredTokenTotalSupply: preinit_params
|
||||
.offeredTokenTotalSupply
|
||||
.clone(),
|
||||
offeredTokenAmount: preinit_params.offeredTokenAmount.clone(),
|
||||
offering: preinit_params.offering.clone(),
|
||||
orbPoolParamsCategory: preinit_params.orbPoolParamsCategory.clone(),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue