diff --git a/models/opinit_bots/init.go b/models/opinit_bots/init.go index 11ffa38..cf39e95 100644 --- a/models/opinit_bots/init.go +++ b/models/opinit_bots/init.go @@ -1373,6 +1373,31 @@ func (m *SetupOPInitBotsMissingKey) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: if msg.String() == "enter" { + keyFilePath, err := weavecontext.GetOPInitKeyFileJson(m.Ctx) + if err != nil { + return m, m.HandlePanic(fmt.Errorf("failed to get key file path for OPinit: %w", err)) + } + + keyFile := io.NewKeyFile() + err = keyFile.Load(keyFilePath) + if err != nil { + return m, m.HandlePanic(fmt.Errorf("failed to load key file for OPinit: %w", err)) + } + + for _, botName := range BotNames { + if res, ok := state.SetupOpinitResponses[botName]; ok { + keyInfo := strings.Split(res, "\n") + address := strings.Split(keyInfo[0], ": ") + mnemonic := keyInfo[1] + keyFile.AddKey(string(BotNameToKeyName[botName]), io.NewKey(address[1], mnemonic)) + } + } + + err = keyFile.Write(keyFilePath) + if err != nil { + return m, m.HandlePanic(fmt.Errorf("failed to write key file: %w", err)) + } + model, err := handleBotInitSelection(m.Loading.EndContext, state) if err != nil { return m, m.HandlePanic(err)