From d1891f3098c1cd33b951314564c85848513acb72 Mon Sep 17 00:00:00 2001
From: Pauloneo
Date: Wed, 8 Jul 2026 07:55:43 -0400
Subject: [PATCH 1/5] Fix Windows path handling for builtin protocol modules
---
copy-builtin-modules.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/copy-builtin-modules.js b/copy-builtin-modules.js
index 97c987e5..b397267b 100644
--- a/copy-builtin-modules.js
+++ b/copy-builtin-modules.js
@@ -57,7 +57,7 @@ const communityModules = [{ path: path.join(rootdir, 'node_modules/@airgap-commu
function createAirGapModule(module) {
const packageJson = require(`./${path.join(module.path, 'package.json')}`)
- const namespace = module.path.split('/').slice(-1)[0]
+ const namespace = path.basename(module.path)
const outputDir = path.join(assetsdir, `protocol_modules/${namespace}`)
const outputFile = 'index.browserify.js'
@@ -84,7 +84,8 @@ function createAirGapModule(module) {
}
function copyCommunityModule(module) {
- const namespace = module.path.split('/').slice(-1)[0]
+ console.log('MODULE PATH:', module.path)
+ const namespace = path.basename(module.path)
const outputDir = path.join(assetsdir, `protocol_modules/${namespace}`)
fs.mkdirSync(outputDir, { recursive: true })
From 43256746cbad0ffd1395ca378fdee34ff5e20898 Mon Sep 17 00:00:00 2001
From: Pauloneo
Date: Wed, 8 Jul 2026 08:28:48 -0400
Subject: [PATCH 2/5] Display master fingerprint for passphrase wallets
---
.../account-address/account-address.page.html | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/app/pages/account-address/account-address.page.html b/src/app/pages/account-address/account-address.page.html
index 2e363bfc..ece78461 100644
--- a/src/app/pages/account-address/account-address.page.html
+++ b/src/app/pages/account-address/account-address.page.html
@@ -34,9 +34,19 @@ {{ protocolName }} {{ protocolSymbol }}
{{ wallet.derivationPath }}
- HD Wallet
- BIP39 passphrase
-
+
+ HD Wallet
+
+
+
+ Master Fingerprint:
+ {{ wallet.masterFingerprint }}
+
+
+
+ BIP39 Passphrase
+
+
From d1e9bff20c8ac75cee776f587ca7342ba05b9800 Mon Sep 17 00:00:00 2001
From: Pauloneo
Date: Thu, 9 Jul 2026 12:21:14 -0400
Subject: [PATCH 3/5] Add wallet label display and fix account item layout
---
src/app/pages/account-add/account-add.page.html | 11 +++++++++++
src/app/pages/account-add/account-add.page.ts | 14 ++++++++------
src/app/services/secrets/secrets.service.ts | 2 ++
3 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/src/app/pages/account-add/account-add.page.html b/src/app/pages/account-add/account-add.page.html
index f91cd71c..fe62baa7 100644
--- a/src/app/pages/account-add/account-add.page.html
+++ b/src/app/pages/account-add/account-add.page.html
@@ -57,6 +57,17 @@
+
+
+ Nome da conta
+
+
+
+
+
BIP-39 Passphrase
diff --git a/src/app/pages/account-add/account-add.page.ts b/src/app/pages/account-add/account-add.page.ts
index 5cc4c58c..42ab63ae 100644
--- a/src/app/pages/account-add/account-add.page.ts
+++ b/src/app/pages/account-add/account-add.page.ts
@@ -46,6 +46,7 @@ export class AccountAddPage {
public isBip39PassphraseEnabled: boolean = BIP39_PASSPHRASE_ENABLED
public revealBip39Passphrase: boolean = false
public bip39Passphrase: string = ''
+ public accountLabel: string = ''
public isAppAdvancedMode$: Observable = this.storageService
.subscribe(VaultStorageKey.ADVANCED_MODE_TYPE)
@@ -182,12 +183,13 @@ export class AccountAddPage {
selectedProtocols.map(async (protocolWrapper: ProtocolWrapper) => {
const protocol = protocolWrapper.protocol
return {
- protocolIdentifier: await protocol.getIdentifier(),
- isHDWallet: protocolWrapper.isHDWallet,
- customDerivationPath: protocolWrapper.customDerivationPath ?? (await protocol.getStandardDerivationPath()),
- bip39Passphrase: this.bip39Passphrase,
- isActive: true
- }
+ protocolIdentifier: await protocol.getIdentifier(),
+ isHDWallet: protocolWrapper.isHDWallet,
+ customDerivationPath: protocolWrapper.customDerivationPath ?? (await protocol.getStandardDerivationPath()),
+ bip39Passphrase: this.bip39Passphrase,
+ isActive: true,
+ label: this.accountLabel
+ }
})
)
)
diff --git a/src/app/services/secrets/secrets.service.ts b/src/app/services/secrets/secrets.service.ts
index 8053cf18..0a709304 100644
--- a/src/app/services/secrets/secrets.service.ts
+++ b/src/app/services/secrets/secrets.service.ts
@@ -53,6 +53,7 @@ interface AddWalletConifg {
customDerivationPath: string
bip39Passphrase: string
isActive: boolean
+ label?: string
}
@Injectable({
providedIn: 'root'
@@ -624,6 +625,7 @@ export class SecretsService {
const addresses: string[] = await wallet.deriveAddresses(1)
wallet.addresses = addresses
+ wallet.label = config.label
return wallet
}
From 56c6f580f0ea9639d6a39ba012c92eddb9901878 Mon Sep 17 00:00:00 2001
From: Pauloneo
Date: Thu, 9 Jul 2026 12:22:23 -0400
Subject: [PATCH 4/5] Add wallet label display and fix account item layout
---
src/app/app.scss | 9 +++++++++
src/app/pages/accounts-list/accounts-list.page.html | 4 ++--
src/app/services/secrets/secrets.service.ts | 1 +
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/app/app.scss b/src/app/app.scss
index 2d2a3f7d..a23e716d 100644
--- a/src/app/app.scss
+++ b/src/app/app.scss
@@ -129,3 +129,12 @@ pre {
.transparent {
--background: none transparent !important;
}
+
+airgap-account-item ion-label div {
+ display: block !important;
+}
+
+airgap-account-item ion-label div p {
+ text-align: left;
+ margin-left: 0;
+}
\ No newline at end of file
diff --git a/src/app/pages/accounts-list/accounts-list.page.html b/src/app/pages/accounts-list/accounts-list.page.html
index faef75db..5f7e9cf5 100644
--- a/src/app/pages/accounts-list/accounts-list.page.html
+++ b/src/app/pages/accounts-list/accounts-list.page.html
@@ -31,12 +31,12 @@
-
+
-
+
diff --git a/src/app/services/secrets/secrets.service.ts b/src/app/services/secrets/secrets.service.ts
index 0a709304..10ad0fcd 100644
--- a/src/app/services/secrets/secrets.service.ts
+++ b/src/app/services/secrets/secrets.service.ts
@@ -126,6 +126,7 @@ export class SecretsService {
serializedWallet.status ?? AirGapWalletStatus.ACTIVE
)
airGapWallet.addresses = serializedWallet.addresses
+ airGapWallet.label = serializedWallet.label
return airGapWallet
})
)
From b01cade4996bda52946defa8444e7392ea72620f Mon Sep 17 00:00:00 2001
From: Pauloneo
Date: Thu, 9 Jul 2026 17:06:24 -0400
Subject: [PATCH 5/5] Corrige salvamento do label das contas
---
src/app/services/iac/iac.service.ts | 1 +
src/app/services/secrets/secrets.service.ts | 24 +++++++++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/src/app/services/iac/iac.service.ts b/src/app/services/iac/iac.service.ts
index 2ab1c1e2..3371e1fb 100644
--- a/src/app/services/iac/iac.service.ts
+++ b/src/app/services/iac/iac.service.ts
@@ -330,6 +330,7 @@ export class IACService extends BaseIACService {
baseWallet.status
)
correctWallet.addresses = baseWallet.addresses
+ correctWallet.label = baseWallet.label
} catch (e) {
if (e.message === 'PROTOCOL_NOT_SUPPORTED') {
correctWallet = baseWallet
diff --git a/src/app/services/secrets/secrets.service.ts b/src/app/services/secrets/secrets.service.ts
index 10ad0fcd..2b5122f6 100644
--- a/src/app/services/secrets/secrets.service.ts
+++ b/src/app/services/secrets/secrets.service.ts
@@ -127,6 +127,7 @@ export class SecretsService {
)
airGapWallet.addresses = serializedWallet.addresses
airGapWallet.label = serializedWallet.label
+
return airGapWallet
})
)
@@ -496,8 +497,12 @@ export class SecretsService {
if (storedSecret === undefined) {
return secret
}
- const wallets: SerializedAirGapWallet[] = await Promise.all(secret.wallets.slice(0).map((wallet: AirGapWallet) => wallet.toJSON()))
- for (let i = 0; i < storedSecret.wallets.length; ++i) {
+
+ const wallets: SerializedAirGapWallet[] = await Promise.all(
+ secret.wallets.slice(0).map((wallet: AirGapWallet) => wallet.toJSON())
+ )
+
+ for (let i = 0; i < storedSecret.wallets.length; ++i) {
const serializedWallet = storedSecret.wallets[i] as unknown as SerializedAirGapWallet
const filtered: (AirGapWallet | SerializedAirGapWallet | undefined)[] = await Promise.all(
@@ -515,9 +520,20 @@ export class SecretsService {
wallets.push(serializedWallet)
}
}
+
const result = MnemonicSecret.init(secret)
- result.wallets = wallets as unknown as AirGapWallet[]
- return result
+ result.wallets = wallets.map((wallet: SerializedAirGapWallet) => {
+ const original = secret.wallets.find(
+ (w) => w.publicKey === wallet.publicKey
+ )
+
+ return {
+ ...wallet,
+ label: original?.label ?? wallet.label ?? ''
+ } as unknown as AirGapWallet
+})
+
+return result
})
)