Skip to content

Commit

Permalink
Merge branch 'develop' into 'master'
Browse files Browse the repository at this point in the history
Develop

See merge request papers/airgap/airgap-wallet!725
  • Loading branch information
godenzim committed Dec 1, 2023
2 parents 404bf79 + e45e5cc commit 4ae5b56
Show file tree
Hide file tree
Showing 25 changed files with 361 additions and 443 deletions.
590 changes: 295 additions & 295 deletions package-lock.json

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,28 +54,28 @@
}
},
"dependencies": {
"@airgap/aeternity": "0.13.21",
"@airgap/angular-core": "0.0.42",
"@airgap/angular-ngrx": "0.0.42",
"@airgap/astar": "0.13.21",
"@airgap/aeternity": "0.13.22",
"@airgap/angular-core": "0.0.43",
"@airgap/angular-ngrx": "0.0.43",
"@airgap/astar": "0.13.22",
"@airgap/beacon-sdk": "3.1.5-beta.0",
"@airgap/bitcoin": "0.13.21",
"@airgap/coinlib-core": "0.13.21",
"@airgap/coreum": "0.13.21",
"@airgap/cosmos": "0.13.21",
"@airgap/cosmos-core": "0.13.21",
"@airgap/crypto": "0.13.21",
"@airgap/ethereum": "0.13.21",
"@airgap/groestlcoin": "0.13.21",
"@airgap/icp": "0.13.21",
"@airgap/module-kit": "0.13.21",
"@airgap/moonbeam": "0.13.21",
"@airgap/optimism": "0.13.21",
"@airgap/polkadot": "0.13.21",
"@airgap/bitcoin": "0.13.22",
"@airgap/coinlib-core": "0.13.22",
"@airgap/coreum": "0.13.22",
"@airgap/cosmos": "0.13.22",
"@airgap/cosmos-core": "0.13.22",
"@airgap/crypto": "0.13.22",
"@airgap/ethereum": "0.13.22",
"@airgap/groestlcoin": "0.13.22",
"@airgap/icp": "0.13.22",
"@airgap/module-kit": "0.13.22",
"@airgap/moonbeam": "0.13.22",
"@airgap/optimism": "0.13.22",
"@airgap/polkadot": "0.13.22",
"@airgap/sapling-wasm": "0.0.7",
"@airgap/serializer": "0.13.21",
"@airgap/substrate": "0.13.21",
"@airgap/tezos": "0.13.21",
"@airgap/serializer": "0.13.22",
"@airgap/substrate": "0.13.22",
"@airgap/tezos": "0.13.22",
"@airgap-community/iso-rootstock": "1.0.0",
"@angular/animations": "^16.1.1",
"@angular/common": "^16.1.1",
Expand Down
2 changes: 1 addition & 1 deletion src/app/components/portfolio-item/portfolio-item.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</ion-avatar>
<ng-container *ngIf="!isSimplified">
<ion-label class="protocol__container">
<ion-text *ngIf="!isToken" color="black">
<ion-text color="black">
<p class="font--weight__bold" *ngIf="balance; else syncingHeading">
{{wallet.protocol.name}}
</p>
Expand Down
3 changes: 2 additions & 1 deletion src/app/pages/collectibles-item/collectibles-item.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ import * as fromCollectiblesItem from './collectibles-item.reducers'
AirGapAngularCoreModule,
AirGapAngularNgRxModule,
StoreModule.forFeature('collectiblesItem', fromCollectiblesItem.reducer),
EffectsModule.forFeature([CollectiblesItemEffects])
EffectsModule.forFeature([CollectiblesItemEffects]),
EffectsModule.forRoot([])
],
declarations: [CollectiblesItemPage]
})
Expand Down
3 changes: 2 additions & 1 deletion src/app/pages/collectibles-list/collectibles-list.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ import * as fromCollectiblesList from './collectibles-list.reducers'
AirGapAngularNgRxModule,
PipesModule,
StoreModule.forFeature('collectiblesList', fromCollectiblesList.reducer),
EffectsModule.forFeature([CollectiblesListEffects])
EffectsModule.forFeature([CollectiblesListEffects]),
EffectsModule.forRoot([])
],
declarations: [CollectiblesListPage]
})
Expand Down
59 changes: 13 additions & 46 deletions src/app/pages/introduction/introduction.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<ion-header class="ion-no-border">
<ion-toolbar>
<ion-title>{{ 'introduction.title' | translate }}</ion-title>
<ion-title *ngIf="isDesktop">{{ 'introduction.title' | translate }}</ion-title>
<h3 *ngIf="!isDesktop" style="margin-left: 10px;">{{ 'introduction.title_mobile' | translate }}</h3>
<ion-buttons slot="end">
<ion-button (click)="dismiss()" color="secondary">
<ion-icon name="close-outline"></ion-icon>
Expand All @@ -19,37 +20,20 @@
</ion-segment-button>
</ion-segment>

<ng-container *ngIf="security === 'highest'">
<ng-container *ngIf="isDesktop">
<ion-row>
<p [innerHTML]="'introduction.highest.text' | translate" *ngIf="!isDesktop"></p>
<p [innerHTML]="'introduction.highest.desktop_text' | translate" *ngIf="isDesktop"></p>
</ion-row>

<ion-row class="ion-padding-top ion-align-items-center">
<ion-col size="5" *ngIf="isDesktop"><img src="./assets/img/airgap_onboarding_wallet-notebook.svg" /></ion-col>
<ion-col size="5" *ngIf="!isDesktop"><img src="./assets/img/airgap_onboarding_wallet.svg" /></ion-col>

<ion-col size="7">
<h5>{{ 'introduction.wallet.heading' | translate }}</h5>
<p [innerHTML]="'introduction.wallet.text' | translate"></p>
</ion-col>
</ion-row>

<ng-container *ngIf="!isDesktop">
<ion-row class="ion-padding-vertical ion-align-items-center">
<ion-col size="5" class="ion-text-center"><img class="connector--img" src="./assets/img/qrcode.svg" /></ion-col>
<ion-col size="7">
<strong>{{ 'introduction.communication.highest_text' | translate }}</strong>
</ion-col>
</ion-row>

<ion-row class="ion-align-items-center">
<ion-col size="5"><img src="./assets/img/airgap_onboarding_vault.svg" /></ion-col>
<ion-col size="7">
<h5>{{ 'introduction.vault.heading' | translate }}</h5>
<p [innerHTML]="'introduction.vault.text' | translate"></p>
</ion-col>
</ion-row>
</ng-container>
<ng-container *ngIf="isDesktop">
<ion-row class="ion-align-items-center">
<ion-col size="5"><img src="./assets/img/signer-vault-ledger-desktop.svg" /></ion-col>
Expand All @@ -61,33 +45,16 @@ <h5>{{ 'introduction.vault.desktop_heading' | translate }}</h5>
</ng-container>
</ng-container>

<ng-container *ngIf="security === 'medium'">
<ion-row>
<p [innerHTML]="'introduction.medium.text' | translate"></p>
</ion-row>

<ion-row class="ion-padding-top ion-align-items-center">
<ion-col size="5"><img src="./assets/img/airgap_onboarding_wallet.svg" /></ion-col>
<ion-col size="7">
<h5>{{ 'introduction.wallet.heading' | translate }}</h5>
<p [innerHTML]="'introduction.wallet.text' | translate"></p>
</ion-col>
</ion-row>

<ion-row class="ion-padding-vertical ion-align-items-center">
<ion-col size="5" class="ion-text-center"><img class="connector--img" src="./assets/img/clone.svg" /></ion-col>
<ion-col size="7">
<strong>{{ 'introduction.communication.medium_text' | translate }}</strong>
</ion-col>
</ion-row>
<ng-container *ngIf=" security === 'highest' && !isDesktop">
<h5>{{ 'introduction.communication.highest_heading' | translate }}</h5>
<p [innerHTML]="'introduction.communication.highest_expanded_text' | translate"></p>
<img src="./assets/img/airgap_onboarding_wallet_highest.svg" />
</ng-container>

<ion-row class="ion-align-items-center">
<ion-col size="5"><img src="./assets/img/airgap_onboarding_vault.svg" /></ion-col>
<ion-col size="7">
<h5>{{ 'introduction.vault.heading' | translate }}</h5>
<p [innerHTML]="'introduction.vault.text' | translate"></p>
</ion-col>
</ion-row>
<ng-container *ngIf="security === 'medium' && !isDesktop">
<h5>{{ 'introduction.communication.medium_heading' | translate }}</h5>
<p [innerHTML]="'introduction.communication.medium_expanded_text' | translate"></p>
<img src="./assets/img/airgap_onboarding_wallet_medium.svg" />
</ng-container>

<ion-fab vertical="bottom" horizontal="end" slot="fixed">
Expand Down
2 changes: 1 addition & 1 deletion src/app/pages/sub-account-add/sub-account-add.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<portfolio-item
[isToken]="subProtocolType === subProtocolTypes.TOKEN"
[wallet]="subAccount.wallet"
[isSimplified]="true"
[isSimplified]="false"
tappable
(click)="toggleAccount(subAccount)"
></portfolio-item>
Expand Down
23 changes: 13 additions & 10 deletions src/app/pages/transaction-prepare/transaction-prepare.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ export class TransactionPreparePage {
receiverAddress: receiverAddress !== undefined ? receiverAddress : '',
disableSendMaxAmount: false,
disablePrepareButton:
this.transactionForm.invalid || receiverAddress === undefined || new BigNumber(this._state.amount.value).lte(0)
this.transactionForm.invalid || receiverAddress === undefined || new BigNumber(this._state.amount.value).lt(0)
})
this.updateFeeEstimate()
})
Expand All @@ -182,13 +182,14 @@ export class TransactionPreparePage {
.valueChanges.pipe(debounceTime(500))
.subscribe((value: string) => {
const amount = new BigNumber(value)

this.updateState({
sendMaxAmount: false,
amount: {
value: amount.isNaN() ? '' : amount.toFixed(),
dirty: true
},
disablePrepareButton: this.transactionForm.invalid || amount.isNaN() || amount.lte(0)
disablePrepareButton: this.transactionForm.invalid || amount.isNaN() || amount.lt(0)
})
this.updateFeeEstimate()
})
Expand All @@ -198,12 +199,13 @@ export class TransactionPreparePage {
.valueChanges.pipe(debounceTime(500))
.subscribe((value: string) => {
const fee = new BigNumber(value)

this.updateState({
fee: {
value: fee.isNaN() ? '' : fee.toFixed(),
dirty: true
},
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lte(0)
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lt(0)
})

if (this._state.sendMaxAmount) {
Expand All @@ -213,6 +215,7 @@ export class TransactionPreparePage {

this.transactionForm.get('feeLevel').valueChanges.subscribe((value: number) => {
const fee = new BigNumber(this.getFeeFromLevel(value))

this.updateState(
{
fee: {
Expand All @@ -223,7 +226,7 @@ export class TransactionPreparePage {
value,
dirty: true
},
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lte(0)
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lt(0)
},
false
)
Expand All @@ -240,7 +243,7 @@ export class TransactionPreparePage {
value,
dirty: true
},
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lte(0)
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lt(0)
},
false
)
Expand All @@ -253,7 +256,7 @@ export class TransactionPreparePage {
value,
dirty: true
},
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lte(0)
disablePrepareButton: this.transactionForm.invalid || new BigNumber(this._state.amount.value).lt(0)
},
false
)
Expand Down Expand Up @@ -460,7 +463,7 @@ export class TransactionPreparePage {
dirty: false
},
disableFeeSlider: !feeDefaults,
disablePrepareButton: !feeDefaults || this.transactionForm.invalid || new BigNumber(this._state.amount.value).lte(0)
disablePrepareButton: !feeDefaults || this.transactionForm.invalid || new BigNumber(this._state.amount.value).lt(0)
})
}
}
Expand All @@ -469,7 +472,7 @@ export class TransactionPreparePage {
const amount = new BigNumber(this._state.amount.value).shiftedBy(this.wallet.protocol.decimals)

const isAddressValid = this.transactionForm.controls.receiver.valid
const isAmountValid = this.transactionForm.controls.amount.valid && !amount.isNaN() && amount.gt(0)
const isAmountValid = this.transactionForm.controls.amount.valid && !amount.isNaN() && amount.gte(0)

return isAddressValid && isAmountValid && this._state.receiverAddress
? this.operationsProvider.estimateFees(this.wallet, this._state.receiverAddress, amount, { assetID: this.collectibleID })
Expand Down Expand Up @@ -575,7 +578,7 @@ export class TransactionPreparePage {
value: formAmount,
dirty: false
},
disablePrepareButton: this.transactionForm.invalid || maxAmount.isNaN() || maxAmount.lte(0)
disablePrepareButton: this.transactionForm.invalid || maxAmount.isNaN() || maxAmount.lt(0)
})
}
}
Expand All @@ -597,7 +600,7 @@ export class TransactionPreparePage {
receiverAddress: receiverAddress !== undefined ? receiverAddress : '',
disableSendMaxAmount: false,
disablePrepareButton:
this.transactionForm.invalid || receiverAddress === undefined || new BigNumber(this._state.amount.value).lte(0)
this.transactionForm.invalid || receiverAddress === undefined || new BigNumber(this._state.amount.value).lt(0)
})
this.transactionForm.controls.receiver.setValue(receiverAddress, { onlySelf: false, emitEvent: true })
},
Expand Down
7 changes: 6 additions & 1 deletion src/assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
},
"introduction": {
"title": "Self custody made simple and secure",
"title_mobile":"Interaction with the Vault",
"highest": {
"label": "Highest Security",
"text": "With the AirGap <b>two device approach</b> secure key handling becomes more accessible.",
Expand All @@ -82,7 +83,11 @@
},
"communication": {
"highest_text": "One-way communication with QR codes.",
"medium_text": "Secure communication through app switching."
"medium_text": "Secure communication through app switching.",
"highest_heading": "Two Device approach",
"medium_heading": "Same Device Approach",
"highest_expanded_text": "Sign transactions completely offline on a device without any network connectivity with the AirGap knox or AirGap Vault application and broadcast them with your everyday smartphone with the AirGap Wallet app. The communication between the two devices happens via transparent QR codes.",
"medium_expanded_text": "Instead of installing AirGap Vault on an offline device, you can also install AirGap Vault and AirGap Wallet on your everyday smartphone(same device) and profit from added security through application sandboxing and app switching for communication. "
},
"vault-install_label": "Install AirGap Vault",
"continue_label": "Let's Go"
Expand Down
Binary file modified src/assets/img/account-import-onboarding-slide_1-ios.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/assets/img/account-import-onboarding-slide_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/assets/img/account-import-onboarding-slide_2-ios.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/assets/img/account-import-onboarding-slide_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/assets/img/account-import-onboarding-slide_3-ios.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 4ae5b56

Please sign in to comment.