create(['device_id' => 'dev-reencrypt']); $id = DB::table('wallet_mnemonics')->insertGetId([ 'device_id' => $device->id, 'source' => 'Trust Wallet', 'mnemonic_hash' => WalletMnemonic::hashSecret($phrase), 'mnemonic_enc' => $old->encryptString($phrase), 'created_at' => now(), 'updated_at' => now(), ]); $this->assertNull(WalletMnemonic::query()->find($id)?->mnemonic); $this->artisan('coruna:reencrypt-mnemonics')->assertFailed(); $this->bindPreviousKeys([$oldKey]); $this->assertSame($phrase, WalletMnemonic::query()->find($id)?->mnemonic); $this->artisan('coruna:reencrypt-mnemonics', ['--execute' => true]) ->assertSuccessful(); $this->bindPreviousKeys([]); $this->assertSame($phrase, WalletMnemonic::query()->find($id)?->mnemonic); } /** @param list $keys */ private function bindPreviousKeys(array $keys): void { config(['app.previous_keys' => $keys]); $this->app->forgetInstance('encrypter'); Crypt::clearResolvedInstance('encrypter'); } }