diff --git a/cmd/fetchd/cmd/gen_asi_upgrade_manifest.go b/cmd/fetchd/cmd/gen_asi_upgrade_manifest.go index 6527c083..680920dc 100644 --- a/cmd/fetchd/cmd/gen_asi_upgrade_manifest.go +++ b/cmd/fetchd/cmd/gen_asi_upgrade_manifest.go @@ -19,7 +19,14 @@ type ASIUpgradeTransfers struct { To string `json:"to"` } +type ASIUpgradeSupply struct { + LandingAddress string `json:"landing_address"` + MintedAmount types.Coins `json:"minted_amount"` + ResultingSupplyTotal types.Coins `json:"resulting_supply_total"` +} + type ASIUpgradeManifest struct { + Supply *ASIUpgradeSupply `json:"supply,omitempty"` IBC *ASIUpgradeTransfers `json:"ibc,omitempty"` Reconciliation *ASIUpgradeTransfers `json:"reconciliation,omitempty"` } diff --git a/cmd/fetchd/cmd/genesis-asi-upgrade.go b/cmd/fetchd/cmd/genesis-asi-upgrade.go index aaa9df36..9f915b22 100644 --- a/cmd/fetchd/cmd/genesis-asi-upgrade.go +++ b/cmd/fetchd/cmd/genesis-asi-upgrade.go @@ -154,7 +154,7 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command { ASIGenesisUpgradeReplaceDenom(jsonData, networkConfig) // supplement the genesis supply - ASIGenesisUpgradeASISupply(jsonData, networkConfig) + ASIGenesisUpgradeASISupply(jsonData, networkConfig, &manifest) // replace addresses across the genesis file ASIGenesisUpgradeReplaceAddresses(jsonData, networkConfig) @@ -453,7 +453,7 @@ func ASIGenesisUpgradeWithdrawReconciliationBalances(jsonData map[string]interfa return nil } -func ASIGenesisUpgradeASISupply(jsonData map[string]interface{}, networkInfo NetworkConfig) { +func ASIGenesisUpgradeASISupply(jsonData map[string]interface{}, networkInfo NetworkConfig, manifest *ASIUpgradeManifest) { denomInfo := networkInfo.DenomInfo supplyInfo := networkInfo.SupplyInfo additionalSupply, ok := sdk.NewIntFromString(supplyInfo.SupplyToMint) @@ -496,6 +496,14 @@ func ASIGenesisUpgradeASISupply(jsonData map[string]interface{}, networkInfo Net // add the additional coins to the overflow address balance overflowAddressBalanceCoins = overflowAddressBalanceCoins.Add(additionalSupplyCoin) + // add the new supply mint record to the manifest + supplyRecord := ASIUpgradeSupply{ + LandingAddress: supplyInfo.UpdatedSupplyOverflowAddr, + MintedAmount: sdk.NewCoins(additionalSupplyCoin), + ResultingSupplyTotal: sdk.NewCoins(newSupplyCoins), + } + manifest.Supply = &supplyRecord + // update the supply in the bank module supply[curSupplyIdx].(map[string]interface{})["amount"] = newSupplyCoins.Amount.String() balances[(*balancesMap)[supplyInfo.UpdatedSupplyOverflowAddr]].(map[string]interface{})["coins"] = getInterfaceSliceFromCoins(overflowAddressBalanceCoins)