diff --git a/packages/apps/src/app/xcm/App.css b/packages/apps/src/app/xcm/App.css
index 8ad03dc2e8..e38c0a0013 100644
--- a/packages/apps/src/app/xcm/App.css
+++ b/packages/apps/src/app/xcm/App.css
@@ -26,3 +26,11 @@
font-weight: 600;
line-height: 100%;
}
+
+.address-book {
+ justify-self: end;
+}
+
+.address-book .endIcon {
+ margin-left: 8px;
+}
diff --git a/packages/apps/src/app/xcm/App.ts b/packages/apps/src/app/xcm/App.ts
index 0a7f02afc9..17b45856f4 100644
--- a/packages/apps/src/app/xcm/App.ts
+++ b/packages/apps/src/app/xcm/App.ts
@@ -102,6 +102,7 @@ export class XcmApp extends PoolApp {
@property({ type: String }) blacklist: string = null;
@property({ type: Number }) ss58Prefix: number = null;
@property({ type: Boolean }) assetCheckEnabled: Boolean = false;
+ @property({ type: Boolean }) addressBookEnabled: Boolean = false;
@state() tab: TransferTab = TransferTab.Form;
@state() transfer: TransferState = DEFAULT_TRANSFER_STATE;
@@ -879,6 +880,53 @@ export class XcmApp extends PoolApp {
}
}
+ protected onAddressBookClick() {
+ const options = {
+ bubbles: true,
+ composed: true,
+ detail: this.transfer,
+ };
+
+ this.dispatchEvent(new CustomEvent('gc:address-book:open', options));
+ }
+
+ AddressBookBtn() {
+ if (this.addressBookEnabled) {
+ return html`
+