@@ -125,14 +125,16 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command {
125125 ASIGenesisUpgradeReplaceBridgeAdmin (jsonData , networkConfig )
126126 }
127127
128+ manifest := ASIUpgradeManifest {}
129+
128130 // withdraw balances from IBC channels
129- if err = ASIGenesisUpgradeWithdrawIBCChannelsBalances (jsonData , networkConfig ); err != nil {
131+ if err = ASIGenesisUpgradeWithdrawIBCChannelsBalances (jsonData , networkConfig , & manifest ); err != nil {
130132 return err
131133 }
132134
133135 // withdraw balances from reconciliation addresses
134136 if networkConfig .ReconciliationTargetAddr != nil {
135- if err = ASIGenesisUpgradeWithdrawReconciliationBalances (jsonData , networkConfig ); err != nil {
137+ if err = ASIGenesisUpgradeWithdrawReconciliationBalances (jsonData , networkConfig , & manifest ); err != nil {
136138 return err
137139 }
138140 }
@@ -146,6 +148,10 @@ func ASIGenesisUpgradeCmd(defaultNodeHome string) *cobra.Command {
146148 // replace addresses across the genesis file
147149 ASIGenesisUpgradeReplaceAddresses (jsonData , networkConfig )
148150
151+ if err = SaveASIManifest (& manifest , config ); err != nil {
152+ return err
153+ }
154+
149155 var encodedAppState []byte
150156 if encodedAppState , err = json .Marshal (jsonData ); err != nil {
151157 return err
@@ -287,12 +293,16 @@ func replaceAddresses(addressTypePrefix string, jsonData map[string]interface{},
287293 })
288294}
289295
290- func ASIGenesisUpgradeWithdrawIBCChannelsBalances (jsonData map [string ]interface {}, networkInfo NetworkConfig ) error {
296+ func ASIGenesisUpgradeWithdrawIBCChannelsBalances (jsonData map [string ]interface {}, networkInfo NetworkConfig , manifest * ASIUpgradeManifest ) error {
291297 bank := jsonData [banktypes .ModuleName ].(map [string ]interface {})
292298 balances := bank ["balances" ].([]interface {})
293299 balanceMap := getGenesisBalancesMap (balances )
294300 ibcWithdrawalAddress := networkInfo .IbcTargetAddr
295301
302+ manifest .IBC = & ASIUpgradeTransfers {
303+ Transfer : []ASIUpgradeTransfer {},
304+ To : ibcWithdrawAddress ,
305+ }
296306 withdrawalBalanceIdx , ok := (* balanceMap )[ibcWithdrawalAddress ]
297307 if ! ok {
298308 fmt .Println ("failed to find Ibc withdrawal address in genesis balances - have addresses already been converted?" )
@@ -322,6 +332,8 @@ func ASIGenesisUpgradeWithdrawIBCChannelsBalances(jsonData map[string]interface{
322332 channelBalanceCoins := getCoinsFromInterfaceSlice (balances [balanceIdx ])
323333 withdrawalBalanceCoins := getCoinsFromInterfaceSlice (balances [withdrawalBalanceIdx ])
324334
335+ manifest .IBC .Transfer = append (manifest .IBC .Transfer , ASIUpgradeTransfer {From : channelAddr , Amount : channelBalanceCoins })
336+
325337 // add channel balance to withdrawal balance
326338 newWithdrawalBalanceCoins := withdrawalBalanceCoins .Add (channelBalanceCoins ... )
327339 balances [withdrawalBalanceIdx ].(map [string ]interface {})["coins" ] = getInterfaceSliceFromCoins (newWithdrawalBalanceCoins )
@@ -358,7 +370,7 @@ func getGenesisAccountSequenceMap(accounts []interface{}) *map[string]int {
358370 return & accountMap
359371}
360372
361- func ASIGenesisUpgradeWithdrawReconciliationBalances (jsonData map [string ]interface {}, networkInfo NetworkConfig ) error {
373+ func ASIGenesisUpgradeWithdrawReconciliationBalances (jsonData map [string ]interface {}, networkInfo NetworkConfig , manifest * ASIUpgradeManifest ) error {
362374 bank := jsonData [banktypes .ModuleName ].(map [string ]interface {})
363375 balances := bank ["balances" ].([]interface {})
364376 reconciliationWithdrawAddress := networkInfo .ReconciliationTargetAddr
@@ -381,6 +393,11 @@ func ASIGenesisUpgradeWithdrawReconciliationBalances(jsonData map[string]interfa
381393 return fmt .Errorf ("no match in genesis for reconciliation address: %s" , * reconciliationWithdrawAddress )
382394 }
383395
396+ manifest .Reconciliation = & ASIUpgradeTransfers {
397+ Transfer : []ASIUpgradeTransfer {},
398+ To : ReconciliationWithdrawAddress ,
399+ }
400+
384401 for _ , row := range items {
385402 addr := row [2 ]
386403
@@ -411,6 +428,8 @@ func ASIGenesisUpgradeWithdrawReconciliationBalances(jsonData map[string]interfa
411428 newReconciliationBalanceCoins := reconciliationBalanceCoins .Add (accBalanceCoins ... )
412429 reconciliationBalance .(map [string ]interface {})["coins" ] = getInterfaceSliceFromCoins (newReconciliationBalanceCoins )
413430
431+ manifest .Reconciliation .Transfer = append (manifest .Reconciliation .Transfer , ASIUpgradeTransfer {From : addr , Amount : accBalanceCoins })
432+
414433 // zero out the reconciliation account balance
415434 balances [balanceIdx ].(map [string ]interface {})["coins" ] = []interface {}{}
416435 }
0 commit comments