Conversation
Dependency ReviewThe following issues were found:
|
40a16dd to
d68435f
Compare
95dc363 to
e0ecc90
Compare
ea789a1 to
42c9b8b
Compare
There was a problem hiding this comment.
Pull request overview
This PR integrates Fireblocks wallet support into the PowPeg application, enabling users to perform peg-in transactions using Fireblocks vault accounts. The implementation includes a new setup flow for Fireblocks credentials (API key and private key file), JWT-based authentication, and a dedicated form for handling peg-in transactions without traditional wallet connections.
Key Changes:
- Added Fireblocks wallet integration with credential management via IndexedDB
- Implemented JWT authentication utilities for secure Fireblocks API communication
- Created new UI components for Fireblocks setup and peg-in workflows
Reviewed changes
Copilot reviewed 21 out of 43 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| vue.config.js | Added PWA configuration with icons and manifest settings |
| src/pegin/components/PegoutForm.vue | Added debug display for pegout quotes |
| src/pegin/views/SetUpIBI.vue | New dialog component for Fireblocks credential configuration |
| src/pegin/views/NoWalletPeginForm.vue | New form component for Fireblocks-based peg-in transactions |
| src/common/utils/jwtBuilder.ts | JWT builder utilities for Fireblocks API authentication |
| src/common/utils/txIdGenerator.ts | Transaction ID generation utility |
| src/common/utils/files.ts | File reading utility for credential handling |
| src/common/services/FireblocksService.ts | Service class for Fireblocks API interactions |
| src/common/composables/useIndexdedDB.ts | IndexedDB composable for persistent credential storage |
| src/common/types/Fireblocks.ts | TypeScript type definitions for Fireblocks entities |
| src/common/router/index.ts | Added routes for Fireblocks setup and peg-in flows |
| src/App.vue | Updated CSP and added storage persistence request |
| package.json | Added PWA plugin and Trezor type definitions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/common/router/index.ts
Outdated
| }, | ||
| }, | ||
| { | ||
| path: '/setupIBi', |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
| @@ -0,0 +1,78 @@ | |||
| export function useIndexedDB() { | |||
There was a problem hiding this comment.
Corrected spelling in filename from 'useIndexdedDB.ts' to 'useIndexedDB.ts'.
src/pegin/views/SetUpIBI.vue
Outdated
| computed, watch, | ||
| } from 'vue'; | ||
| import { mdiArrowRight, mdiFileUpload, mdiKey } from '@mdi/js'; | ||
| import { useIndexedDB } from '@/common/composables/useIndexdedDB'; |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
| import type { FireblocksTransactionParams, VaultAccount } from '@/common/types/Fireblocks'; | ||
| import { TransferPeerPathType } from '@/common/types/Fireblocks'; | ||
| import { appendRecaptcha, Machine, readFileAsText } from '@/common/utils'; | ||
| import { useIndexedDB } from '@/common/composables/useIndexdedDB'; |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
src/App.vue
Outdated
| if (navigator.storage && navigator.storage.persist) { | ||
| navigator.storage.persist() | ||
| .then((persistent) => { | ||
| console.log(`Almacenamiento persistente: ${persistent}`); |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
| txError.value = new ServiceError( | ||
| 'FireblocksService', | ||
| 'getVaultAccounts', | ||
| 'The credential are invalid or expired, please check them and try again', |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
| @@ -0,0 +1,78 @@ | |||
| export function useIndexedDB() { | |||
| const dbName = 'my-db'; | |||
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
| destination: { | ||
| type: TransferPeerPathType.OneTimeAddress, | ||
| subType: 'External', | ||
| name: 'LBC BTC Address', |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
|
42c9b8b to
6d35a3c
Compare
Fixing types on transsaction request Fix Base url path on FireblocksService Add Fireblocks wallet button and NoWalletPegin form I've defined a new wallet button for fireblocks on pegin, it is connected to a new view to create a pegin tx with no wallet previously connected Finish Flyover flow using fireblocks on POC Remove home buttons and rename Fireblocks form buttons Remove native option Accepting quote and using lps destination address Check user privileges before enable the peginForm on fireblocks Fix error handling on the api user role Increase app version to 3.2 Remove IBI console Include JWT build function to create the fireblocks request on the UI I've defined the JWT creation method using the provede .key file and the defined methods in the FireblocksService in order to prevent sending credentials to the backend Update Fireblocks service to create the JWT on the ui Avoid use of Math.random in the txIdGenerator Include Vault selector for the Fireblock account
6d35a3c to
c41cab2
Compare
removing files and improve validations on form
Form validations for Fireblocks
|


No description provided.